Foros del Web » Programando para Internet » PHP »

ayuda con una consulta

Estas en el tema de ayuda con una consulta en el foro de PHP en Foros del Web. He tenido varios detallitos con este codigo Código PHP: <?php //conexion a la base de datos de egobierno $conexion  =  mysql_connect ( "localhost" , "root" , "*****" ); $DiadeCambio  =  $_POST [ ...
  #1 (permalink)  
Antiguo 15/11/2007, 15:14
Avatar de Caludia87  
Fecha de Ingreso: octubre-2007
Mensajes: 83
Antigüedad: 17 años, 1 mes
Puntos: 0
Exclamación ayuda con una consulta

He tenido varios detallitos con este codigo

Código PHP:

<?php
//conexion a la base de datos de egobierno
$conexion mysql_connect("localhost","root","*****");

$DiadeCambio $_POST['dias'] ;
$MesdeCambio $_POST['mes'] ;
$AniodeCambio $_POST['anio'] ;
$HoradeCambio $_POST['hora'] ;
$MinutodeCambio $_POST['minuto'] ;

mysql_query("INSERT INTO CambioFecha (anio_cambio, mes_cambio, dia_cambio, hora_cambio, minuto_cambio) VALUES ('$AniodeCambio', '$MesdeCambio', '$DiadeCambio', '$HoradeCambio', '$MinutodeCambio')") or die(mysql_error());  


?> 
    <!-- Imprimo los valores que se han guardado en las variables -->
<?php 
$result
=mysql_query("SELECT *FROM CambioFecha ORDER BY anio_cambio DESC LIMIT 1") or die(mysql_error());
?>
<br>
<br>
  <TABLE BORDER=1 align="center" CELLSPACING=1 CELLPADDING=1>
      <TR><TD>&nbsp;Año de Cambio</TD><TD>&nbsp;Mes de Cambio&nbsp;</TD><TD>&nbsp;Dia de Cambio&nbsp;</TD><TD>&nbsp;Hora de Cambio</TD><TD>&nbsp;Minuto de Cambio</TD></TR>
      
 <?     
while($row mysql_fetch_array($result)) { 
      
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td></tr>"$row["anio_cambio"],$row["mes_cambio"],$row["dia_cambio"], $row["hora_cambio"],$row["minuto_cambio"]); 
       


?>
</table>
El codigo me muestra en una tablita el Año, Mes y Dia de Cambio
Yo quiero que aparezca solamente el ultimo registro que esta en la tabla.

Mi tabla de MySQL esta asi:

Tabla: Cambio Fecha
Columnas:

anio_cambio
20010
2007
2007
2008

mes_cambio
4
11
12
1

dia_cambio
25
15
3
1


Con esos registros tengo mi tabla, y en ese orden... (Las columnas son VARCHAR)

Mi consulta es:

Código PHP:
<?php 
$result
=mysql_query("SELECT *FROM CambioFecha ORDER BY anio_cambio DESC LIMIT 1") or die(mysql_error());
?>
Yo quiero que me muestre, el ultimo registro que yo di de alta, en este caso es año 2010, mes 4, dia 25
Pero en la página me muestra Año 2007, Mes 11, Dia 15 ; (COMO FORMA ASCENDENTE) pero ese es el 3º registro que di de alta... no el ultimo
Ahora si le digo que me los muestre de forma DESCENDENTE si me muestra año 2010, mes 4, dia 25... Pero si doy de alta otro registro como año 2008, mes 2, dia 4... La página me sigue mostrando año 2010, mes 4, dia 25

Que tengo que hacer para que me muestre el ultimo registro???
Sin que tome en cuenta que una fechas es mayor que otra o menor...
Porque creo que eso es lo que esta haciendo...
Me podrian ayudar porfavor??
  #2 (permalink)  
Antiguo 15/11/2007, 15:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: ayuda con una consulta

Deberias entonces de comparar por otro campo, por decir esa consulta INSERT te debe de regresar un ID Autonumerico, con dicho ID puedes almacenarlo en una tabla intermedia de cache, asi podrias seleccionar ese dato en especifico ya que sabes que es el ultimo que se genero.

Saludos.
  #3 (permalink)  
Antiguo 15/11/2007, 15:53
Avatar de KaEl3116  
Fecha de Ingreso: noviembre-2007
Ubicación: Lima - Peru
Mensajes: 15
Antigüedad: 17 años
Puntos: 0
Re: ayuda con una consulta

mmmmm... he probado tu consulta en mysql, y te digo que me bota el ultimo registro ingresado.
por ejemplo si tengo el registro 2010 - 11 - 11 y tengo el registro 2011 - 11 - 11, pues devuelve 2011 - 11 - 11, eso solo sucede si el año es mayor, pero si ingreso 2010 - 11 - 12, me sigo devolviendo 2010 - 11 -11.

Prueba creando una nueva columna por ejemplo NumFecha, y que sea un autonumerico, y a la hora de hacer tu consulta lo ordenas por esa columna y siempre te devolveras el ultimos ... espero me halla hecho entender y muxa suerte
  #4 (permalink)  
Antiguo 15/11/2007, 16:23
 
Fecha de Ingreso: julio-2007
Mensajes: 10
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: ayuda con una consulta

no revise todo el codigo jeje, pero si lo que necesitas es traer el ultimo registro insertado usa el "SELECT_LAS_INSERT_ID()" de mysql, mientras no hallas cerrado la conexion, te traera el ultimo id que has insertado, y ya teniendo tu ultimo id de registro insertado peudes hacerte la consulta de nuevo.
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 12:59.