Foros del Web » Programando para Internet » PHP »

Porque no graba la sentencia SQL

Estas en el tema de Porque no graba la sentencia SQL en el foro de PHP en Foros del Web. Hola a todos: Tengo este codigo, el sql lo ejecuto en un cliente SQL y me separa la fecha correctamente quedando ano 2013 mes 01 ...
  #1 (permalink)  
Antiguo 15/01/2013, 08:18
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 11 años, 10 meses
Puntos: 4
Información Porque no graba la sentencia SQL

Hola a todos:

Tengo este codigo, el sql lo ejecuto en un cliente SQL y me separa la fecha correctamente quedando ano 2013 mes 01 dia 20

pero lo ingreso en codigo php asi :

Código PHP:
Ver original
  1. $modificar_fecha_servicio1=mysql_query("SELECT fecha_servicio,
  2.    SUBSTRING_INDEX( fecha_servicio, '-', 1 ) AS ano,
  3.    SUBSTRING_INDEX(SUBSTRING_INDEX( fecha_servicio, '-', 2 ),'-',-1) AS mes,
  4.    SUBSTRING_INDEX(SUBSTRING_INDEX( fecha_servicio, '-', -1 ),' ',1) AS dia
  5. FROM anexo_8 where id_anexo='1'");
  6.  
  7. //Aqui toy
  8. $conti=0;
  9. while ($tows=mysql_fetch_array($modificar_fecha_servicio1)) // Con este arreglo corrijo la fecha de 2012-05-12 a 12-05-2012
  10.             {  
  11.            
  12.            
  13.                 $ano=$tows['ano'];
  14.                 $mes=$tows['mes'];
  15.                 $dia=$tows['dia'];
  16.                 echo "$ano /";
  17. }

PERO TODO , todo lo que almaceno en $ano o en $mes , o en $dia me ty lo imprmo con un echo me imprime la FECHA COMPLETA, y si imprimo el contenido dle array con :

Código PHP:
Ver original
  1. echo "<pre>";
  2. print_r($modificar_fecha_servicio1);
  3. echo "</pre>";

Me trae RESOUSER ID #13

En que puedo estar fallando?
  #2 (permalink)  
Antiguo 15/01/2013, 08:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Porque no graba la sentencia SQL

$modificar_fecha_servicio1 no es un array

mysql_fetch_array($modificar_fecha_servicio1) el resultado de esto si es un array de cada fila del resultado de la consulta

Esto dentro del while si te mostrara el array de cada registro pero me temo que te mostrará lo mismo que los echo

echo "<pre>";
print_r($tows);
echo "</pre>";

El campo fecha_servicio lo tienes definido como string o como date. Si es date usa las date functions para obtener lo que buscas. Entre ellas tambien encontraras una para dar formato a la fecha de salida de YYYY-mm-dd a dd/mm/YYYY. Eso tambien lo puedes hacer una vez en php con la funcion date. Siempre que tengas una fecha si tienes un string no.... bueno tambien esta strtotime pero es mas complicado...

no es complicado MONTH(fecha_servicio) tedarà el mes... p.e.

Lo mejor es usar el tipo de datos adecuado para cada cosa ... si es una fecha DATE o DATETIME si esta la hora....

NO USES VARCHAR PARA GUARDAR FECHAS
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 15/01/2013 a las 08:43
  #3 (permalink)  
Antiguo 15/01/2013, 09:11
Avatar de mager3  
Fecha de Ingreso: junio-2012
Ubicación: Medellin
Mensajes: 318
Antigüedad: 11 años, 10 meses
Puntos: 4
Respuesta: Porque no graba la sentencia SQL

Ok compañero, muchas gracias, yo lo habia pensado asi, pero tu indicacion me corroboro, muchas grascias realizare el cambio y les cuento

Etiquetas: Ninguno
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 21:24.