Comunidad de diseño web y desarrollo en internet online

date_format (fecha, '%d/%m/%Y')

Citar            
MensajeEscrito el 27 Jul 2007 05:50 pm
A ver si esta me la respondeis que no tengo ni idea de que estoy haciendo mal y lo he provado de mil maneras distintas sin ningun resultado... :crap: Quisiera colocar el campo fecha por dia/mes/año, y en la base de datos lo tengo como año/mes/dia.
Este es el codigo que utilizo para importar las entradas, que pertenecen al mes de enero de 2007, al flash.

Código :

    $conex = mysql_connect($HOST, $USER, $PASS);
    mysql_select_db($DATABASE, $conex);
    $sql = "SELECT `ID`,`title`,`body`,date_format(fecha, '%d/%m/%Y'),`any`,`mes` FROM `agenda` WHERE `any`=2007 and `mes`=01 ORDER BY `fecha` ASC";
    $result = mysql_query($sql);
    mysql_close();
    $respuesta="";
    $i=0;
    while ($row = mysql_fetch_array($result)){
         $respuesta.= "&fecha$i=".$row['fecha'];
         $respuesta.= "&body$i=".$row['body'];
         $i++;         
    }
    $respuesta.="&";

Si coloco solo el campo 'fecha', sin el date_format, me lo pone como esta en la db, y con el date_format lo ignora por completo mostrando solo el campo 'body'.... Alguien sabe si debo colocarlo en otro orden o escribirlo de otra manera xa que me haga caso? saludos y gracias de antemano ;)

Por willow_m_v

7 de clabLevel



 

msie
Citar            
MensajeEscrito el 27 Jul 2007 07:46 pm
Hola, estas cometiendo un error, date_format() es una sentencia de php no de Sql.-
Tu tienes que ejecutar la sentencia sql primero y luego aplicar el date_format(), como por ej:

Código :

$sql = "SELECT `ID`,`title`,`body`,`fecha`,`any`,`mes` FROM `agenda` WHERE `any`=2007 and `mes`=01 ORDER BY `fecha` ASC";    
$result = mysql_query($sql);   
mysql_close();
while ($row = mysql_fetch_array($result)){         
$respuesta.= "&fecha$i=".date_format($row['fecha'],'%d/%m/%Y');         
$respuesta.= "&body$i++=".$row['body'];
}
echo $respuesta;

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie
Citar            
MensajeEscrito el 27 Jul 2007 09:59 pm
DATE_FORMAT existe en mysql, y en este caso es mejor usarlo de mysql que de php york3s

Código :

$sql = "SELECT `ID`,`title`,`body`,date_format(fecha, '%d/%m/%Y') AS Fecha,`any`,`mes` FROM `agenda` WHERE `any`=2007 and `mes`=01 ORDER BY `fecha` ASC";


Debes usar alias, ahora como te lo puse en el while lo haras con $row["Fecha"] <--- F en mayuscula

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 31 Jul 2007 09:30 am
Muchas gracias a los dos por responder, la verdad es que me habeis solucionado el problema ;) Estaba apunto de dejarlo tal y como me venia de la db xq lo estuve provando de mil formas distintas y no habia manera!! Xo tal y como dice Maikel funciona sin problemas.
Un saludo a todos y otra vez muchas gracias, espero ser de ayuda algun dia :P

Por willow_m_v

7 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 May 2008 08:30 am
Resulta que yo tengo un problemilla parecido, quiero mostrar la fecha en formato dd-mm-yyyy pero claro cuando quiero aplicarlo me dice esto: Warning: sprintf() [function.sprintf]: Too few arguments in C:\\Archivos de programa\\xampp\\htdocs\\aulas\\calendario.php on line 206
Query was empty

Aquí os dejo el código, el cual quiero sacar una fecha de la BD y mostrarla en el formato que dije.

Código :

<?php
$MM_Aula_rs_Reservas = \"1\";
if (isset($_GET[\'aula\'])) {
  $MM_Aula_rs_Reservas = (get_magic_quotes_gpc()) ? $_GET[\'aula\'] : addslashes($_GET[\'aula\']);
}
mysql_select_db($database_BDreservas, $BDreservas);
$query_rs_Reservas = sprintf(\"SELECT reservas.observaciones as observaciones, date_format(reservas.fecha, \'%d/%m/%Y\') as fecha, profesores.nombre as profesor, seccion.nombre as seccion FROM reservas, profesores, seccion WHERE reservas.fecha BETWEEN %s AND %s AND reservas.id_aulas = %s AND reservas.id_turno = %s AND reservas.id_profesores = profesores.id AND reservas.id_seccion =  seccion.id\", 
GetSQLValueString(date(\"Y-m-d\", $fecha_lunes), \"date\"), 
GetSQLValueString(date(\"Y-m-d\", $fecha_viernes), \"date\"), 
GetSQLValueString($MM_Aula_rs_Reservas, \"int\"), 
GetSQLValueString($row_Regasuntocalenturno[\'id\'], \"int\"));
$rs_Reservas = mysql_query($query_rs_Reservas, $BDreservas) or die(mysql_error());
$row_rs_Reservas = mysql_fetch_assoc($rs_Reservas);
$totalRows_rs_Reservas = mysql_num_rows($rs_Reservas);
?>
    <tr>
      <td><div align=\"center\"><?php echo $row_Regasuntocalenturno[\'hora\']; ?></div></td>
      <td>
        <div align=\"center\">
          <?php
         if(date(\"Y-m-d\", $fecha_lunes) == $row_rs_Reservas[\'fecha\'])
         {
         ?>
         <form id=\"form2\" name=\"form2\" method=\"get\" action=\"calendario.php\">
         <?php
            echo $row_rs_Reservas[\'profesor\'].\"<br />\";
            echo $row_rs_Reservas[\'seccion\'].\"<br />\";
            echo $row_rs_Reservas[\'observaciones\'].\"<br />\";
            echo $row_rs_Reservas[\'fecha\'].\"<br />\";
            $row_rs_Reservas = mysql_fetch_assoc($rs_Reservas);
         ?>


Espero vuestras respuestas, Gracias

Por xeron

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 May 2008 09:11 pm
Primero para que usas el "sprintf" por lo que tengo entendido es para imprimir con formato.- Y para eso se usa del data_format(dato, formato)

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 09 May 2008 07:44 am
Todo ese código me lo generó el Dreamweaver, yo solo toqué la consulta para que me muestre la información que quiero que me salga, bueno ademas de los 'echo'. Toy muy liao... :S

Por xeron

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 May 2008 09:35 am
Ya ta!! to solucionao!!
Con esto :

Código :

function cambiaf_a_normal($fecha) /*funcion para convertir la fecha de formato americano a europeo */
{
    ereg( \\\"([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})\\\", $fecha, $mifecha);
    $lafecha=$mifecha[3].\\\"/\\\".$mifecha[2].\\\"/\\\".$mifecha[1];
    return $lafecha;
}


y esto:

Código :

echo cambiaf_a_normal($row_rs_Reservas[\\\'fecha\\\']).\\\"<br />\\\";


Ya me sale to bien. :P

Por xeron

5 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.