Foros del Web » Programando para Internet » PHP »

MySQL opera con string y no quiero eso!

Estas en el tema de MySQL opera con string y no quiero eso! en el foro de PHP en Foros del Web. Amigos: mi MySQL tiene vida propia y opera con strings.... haciendo que '2001-01-01' al ser guardado en la DB pase a 2001-1-1 = 1999 Como ...
  #1 (permalink)  
Antiguo 04/11/2007, 20:25
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Exclamación MySQL opera con string y no quiero eso!

Amigos: mi MySQL tiene vida propia y opera con strings.... haciendo que '2001-01-01' al ser guardado en la DB pase a 2001-1-1 = 1999

Como puedo evitar esto ???

Tengo $alta='2001-01-01'; y cuando hago ECHO sale 2001-01-01 pero al guardar en la DB se graba 1999.

Estoy usando "VarChar" como TIPO para el campo porque con DATE tuve problemas.

Que me aconsejan ? algun ejemplo ?
  #2 (permalink)  
Antiguo 04/11/2007, 20:31
 
Fecha de Ingreso: julio-2007
Mensajes: 71
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: MySQL opera con string y no quiero eso!

porque con DATE tuviste problemas? no te deberia tener problemas...
  #3 (permalink)  
Antiguo 04/11/2007, 20:38
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: MySQL opera con string y no quiero eso!

Cita:
porque con DATE tuviste problemas? no te deberia tener problemas...
Pues ... cuando el Type de la DB es DATE, se graba "0000-00-00" y eso que estoy inyectando "2001-01-01"
  #4 (permalink)  
Antiguo 04/11/2007, 22:56
 
Fecha de Ingreso: julio-2007
Mensajes: 71
Antigüedad: 16 años, 9 meses
Puntos: 1
Re: MySQL opera con string y no quiero eso!

pienso q capaz no pusiste entre comillas...
a ver, hace eso:
$fecha = "2001-01-01";
y despues agrega esta variable mediante la setencia de SQL, y me contas...
  #5 (permalink)  
Antiguo 05/11/2007, 01:20
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: MySQL opera con string y no quiero eso!

Podrias poner la estructura de la tabla como un create table aca para identificar alguna cosa por ahi ?...

Grx.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #6 (permalink)  
Antiguo 05/11/2007, 03:08
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: MySQL opera con string y no quiero eso!

Las comillas estan .....

Código PHP:
$alta='2001-01-01'// con comillas dobles da igual         
echo $alta;        //  devuelve bien
    
for ($i 0$i $regs$i++) {
    
$sql "INSERT INTO contenido(id, anchor, url, title, descri, categoria, categoria2, categoria3, usuario_correo, alta, calificacion, estado) VALUES (null,'$anchor[$i]','$href[$i]','$title_solved[$i]','$descrip[$i]','$catego',NULL,NULL,NULL,$alta,NULL,NULL)";

 
mysql_query($sql) or die('A error occured: ' mysql_error());      

Hola Marvin! la estructura de la tabla es esta:
(con alta tipo "varchar" me hace la operacion algebraica y con tipo date me la deja vacia!)

Cita:
id int(11) No
anchor varchar(60) No
url varchar(80) No
title varchar(40) No
descri varchar(256) Sí NULL
categoria varchar(10) No
categoria2 varchar(10) Sí NULL
categoria3 varchar(10) Sí NULL
usuario_correo varchar(40) Sí NULL
alta date Sí NULL
calificacion smallint(6) Sí NULL
estado char(1) Sí NULL


Exportada se ve asi:

Cita:
-- Estructura de tabla para la tabla `contenido`
--

CREATE TABLE `contenido` (
`id` int(11) NOT NULL auto_increment,
`anchor` varchar(60) collate latin1_general_ci NOT NULL,
`url` varchar(80) collate latin1_general_ci NOT NULL,
`title` varchar(40) collate latin1_general_ci NOT NULL,
`descri` varchar(256) collate latin1_general_ci default NULL,
`categoria` varchar(10) collate latin1_general_ci NOT NULL,
`categoria2` varchar(10) collate latin1_general_ci default NULL,
`categoria3` varchar(10) collate latin1_general_ci default NULL,
`usuario_correo` varchar(40) collate latin1_general_ci default NULL,
`alta` date default NULL,
`calificacion` smallint(6) default NULL,
`estado` char(1) collate latin1_general_ci default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=10 ;

--
-- Volcar la base de datos para la tabla `contenido`
--

INSERT INTO `contenido` (`id`, `anchor`, `url`, `title`, `descri`, `categoria`, `categoria2`, `categoria3`, `usuario_correo`, `alta`, `calificacion`, `estado`) VALUES
(1, 'Cualquier verdura', 'http://anyveggie.blogspot.com', 'series de TV', 'series de TV, discos o "cualquier verdura"', ' 0.2.4 ', NULL, NULL, NULL, '0000-00-00', NULL, NULL),
(2, 'Diente del Parnaso', 'http://dientedelparnaso.blogspot.com/', '', 'un blog sobre noticias de actualidad nacional e internacional con un estilo crítico', ' 0.2.4 ', NULL, NULL, NULL, '0000-00-00', NULL, NULL),
(3, 'Ex profeso', 'http://www.exprofeso.com', 'periodismo', 'este es un sitio web de periodismo. el fin: elaborar un discurso crítico de calidad. el medio: la reflexión. la consigna: pensar es hacer periodismo, y hacer periodismo es hacer pensar.', ' 0.2.4 ', NULL, NULL, NULL, '0000-00-00', NULL, NULL),
(4, 'Mara Torres : página no oficial', 'http://www.espacioblog.com/labana/blog', 'periodismo hispano', 'Weblog sobre la periodista y escritora Mara Torres. Para ponerse al día sobre su segundo libro, su etapa en La 2 Noticias, y leer una entrevista en exclusiva', ' 0.2.4 ', NULL, NULL, NULL, '0000-00-00', NULL, NULL),
(5, 'Norberto Portugheiz', 'http://www.norbertoportugheiz.blogspot.com/', 'actualidad', 'informaciones y referencias de actualidad, respecto a personas y pueblos donde se leeran escritos mios, muchos ineditos: articulos, ensayos, poesia, narrativa, humor.', ' 0.2.4 ', NULL, NULL, NULL, '0000-00-00', NULL, NULL),
(6, 'Ojo al Texto', 'http://www.otexto.net', '', 'bitácora del Prof. Alvaro Ramirez Ospina sobre sociedad, politica, comunicacion,...', ' 0.2.4 ', NULL, NULL, NULL, '0000-00-00', NULL, NULL),
(7, 'PapeArt', 'http://papearte.blogspot.com', '', 'Noticias, entretenimiento y humor', ' 0.2.4 ', NULL, NULL, NULL, '0000-00-00', NULL, NULL),
(8, 'Quiero ser un jedi', 'http://quieroserjedi.blogspot.com/', '', 'videos, TV, música, chistes, ...', ' 0.2.4 ', NULL, NULL, NULL, '0000-00-00', NULL, NULL);
  #7 (permalink)  
Antiguo 05/11/2007, 03:14
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: MySQL opera con string y no quiero eso!

Me imagino que te hace la operacion algebraica puesto que no estas agregando las comillas simples a $alta.

En el caso de DATE, creo que tambien es necesario agregar comillas simples como si se tratara de un texto, y debes verificar cual es el orden que mysql te da cuando la defines con DATE ya que podria estar algo como AAAA-DD-MM o AAAA-MM-DD.

Prueba agregandole la comilla simple al insert.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #8 (permalink)  
Antiguo 05/11/2007, 03:26
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
De acuerdo Solucionado! mil gracias

Marvin: cuando dicen "sos un genio" lo dicen de verdad!!! yo asi lo creo!!!

Con $alta="'2001-01-01'"; se soluciono todo

// gracias a todos!!!!!!!!!!!!!
  #9 (permalink)  
Antiguo 05/11/2007, 03:30
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: MySQL opera con string y no quiero eso!

;)... no soy un genio... solo que he trabajado harto con fechas ;)

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:46.