Foros del Web » Programando para Internet » PHP »

No toma el valor correcto de la base de datos

Estas en el tema de No toma el valor correcto de la base de datos en el foro de PHP en Foros del Web. Saludos, En la pagina web que estoy realizando, me encuentro con el problema de que en la portada tiene que ir siempre el último valor ...
  #1 (permalink)  
Antiguo 22/07/2009, 08:59
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
No toma el valor correcto de la base de datos

Saludos,


En la pagina web que estoy realizando, me encuentro con el problema de que en la portada tiene que ir siempre el último valor introducido dentro de una base de datos.

El id de dicha base de datos, se auto incrementa cada vez que año un valor, y en las ultimas ocasiones he eliminado varios registros, al registrar nuevos datos, la ID ha seguido como si esos registros siguiesen adelante... entonces cuando hago la consulta... toma el ID real, pero es que yo ya habia borrado, y yo quiero que me muestre el id ultimo existente que me muestra el PHP MY ADMIN

Por un lado

Código:
$consulta="select revista max(id) from revista where max(id)";
$hacerConsulta=mysql_query($consulta,$conexion);
$id=mysql_result($hacerConsulta,'id');
echo "...".$id;
Os paso este enlace para que veais que el echo que hago imprime un valor de 37

http://www.zazpi.net/Zazpi/eu/index.php




Espero que me podais dar alguna idea!
Un saludo y gracias!
Juncal
  #2 (permalink)  
Antiguo 22/07/2009, 09:28
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

si quieres obtener el ultimo id:

$consulta="select max(id) from revista";

Si quieres obtener la info del ultimo id

$consulta="select * from revista where id = max(id)";

(El * lo puedes reeemplazar por las columnas que quieres , pero separadas por coma)

Saludos

PD: Todo esto suponiendo que la columna que tiene el numero 27 se llama Id..
  #3 (permalink)  
Antiguo 22/07/2009, 12:41
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

Hola,

He efectuado este codigo y ahora mismo no me sale nadaaaaaaa

Código:
$consulta="select * from revista where max(id)";
$hacerConsulta=mysql_query($consulta,$conexion);
$id=mysql_result($hacerConsulta,'id');
$flash=mysql_result($hacerConsulta,'flash');
$pdf=mysql_result($hacerConsulta,'pdf');
echo $id."--".$pdf;
He comprobado los campos y se llaman realmente así!!!
  #4 (permalink)  
Antiguo 22/07/2009, 12:51
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

pero en el where tienes que poner la columna que vas a compara...

$consulta="select * from revista where id = max(id)";


Código PHP:
$consulta="select * from revista where id = max(id)";
$hacerConsulta=mysql_query($consulta,$conexion);
$id=mysql_result($hacerConsulta,'id');
$flash=mysql_result($hacerConsulta,'flash');
$pdf=mysql_result($hacerConsulta,'pdf');
echo 
$id."--".$pdf
  #5 (permalink)  
Antiguo 22/07/2009, 13:14
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

Código PHP:
 <?php
    
include("../intranet/conexion.php");
$consulta="select * from revista where id = max(id)";
$hacerConsulta=mysql_query($consulta,$conexion);
$id=mysql_result($hacerConsulta,'id');
$flash=mysql_result($hacerConsulta,'flash');
$pdf=mysql_result($hacerConsulta,'pdf');
echo 
$id."--".$pdf;  
     
?>
Sigue sin funcionaaaaaaaaaaaaaaaaaaaaaaaar
  #6 (permalink)  
Antiguo 22/07/2009, 13:24
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

Bueno pero no me griteeeeeeeeeeeeeeeeeeeeees..
jajajaja

prueba esto
Código PHP:
 <?php 
    
include("../intranet/conexion.php"); 
$consulta="select * from revista where id = (select max(id) from revista)"
$hacerConsulta=mysql_query($consulta,$conexion); 
$id=mysql_result($hacerConsulta,'id'); 
$flash=mysql_result($hacerConsulta,'flash'); 
$pdf=mysql_result($hacerConsulta,'pdf'); 
echo 
$id."--".$pdf;   
     
?>
  #7 (permalink)  
Antiguo 22/07/2009, 13:33
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

Ahora me saca que la id es 37 , osea vuelvo al problema inicial de esta tarde

Pd. No grito, solo soy una damisela en apuros
  #8 (permalink)  
Antiguo 22/07/2009, 13:43
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

a ver una consulta que sale si ejecutas este sql ???

SELECT *
FROM revista
ORDER BY id DESC
LIMIT 1
  #9 (permalink)  
Antiguo 22/07/2009, 13:49
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

Tampoco... el lo toma como si existian aun los registros que eliminé!

Las sentencias de conexion estan correctas, y las demas consultas que he hecho a lo largo de la web, las hace bien... eso si, son consultas aun mucho mas sencillas si cabe
  #10 (permalink)  
Antiguo 22/07/2009, 14:06
 
Fecha de Ingreso: febrero-2009
Mensajes: 21
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

pues claro, cuando usas key autoincrementables, el id sigue en aumento y no vueve a ocupar un lugar asi lo elimines.
si quieres coger el valor de cuantos tienes pues mejor has un:


select count(*) from revista
  #11 (permalink)  
Antiguo 22/07/2009, 14:17
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

da lo mismo que el ID sea incrementable si lo que quieres es recuperar el ultimo simpre va a ser el que tiene mayor ID, yo creo que tiene un error de logica...

pega aqui el resultado de:

SELECT *
FROM revista
ORDER BY id DESC
LIMIT 1

y :

SELECT *
FROM revista

para ver lo que tiene la tabla


Una alternativa podria ser guadar el registro con fecha y hora y despues buscar el ams antiguo, pero primero pega lo que te pido
  #12 (permalink)  
Antiguo 23/07/2009, 04:25
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

De la primera consulta me sale 37 y de la segunda 1!!!
No he contestado antes... porque no pude
  #13 (permalink)  
Antiguo 23/07/2009, 07:15
 
Fecha de Ingreso: noviembre-2007
Ubicación: Irun
Mensajes: 79
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

Buenas!

He reconstruido la base de datos y ahora me funciona correctamente!
Muchas gracias!
Juncal
  #14 (permalink)  
Antiguo 23/07/2009, 07:17
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

No entiendo,

1. metete al phpmyadmin

2. ejecuta la consulta y
3. pega una captura de pantalla para cada consulta....

Si me dices 37 y 1 no entiendo nada....
  #15 (permalink)  
Antiguo 23/07/2009, 07:19
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: No toma el valor correcto de la base de datos

lo de reconstruir era la otra alternativa.... pero bueno ...

quedate con esta consulta para sacar la informacion..

Código PHP:
 <?php  
    
include("../intranet/conexion.php");  
$consulta="select * from revista where id = (select max(id) from revista)";  
$hacerConsulta=mysql_query($consulta,$conexion);  
$id=mysql_result($hacerConsulta,'id');  
$flash=mysql_result($hacerConsulta,'flash');  
$pdf=mysql_result($hacerConsulta,'pdf');  
echo 
$id."--".$pdf;    
     
?>
Saludos y buena suerte
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 16:02.