Foros del Web » Programando para Internet » PHP »

mostrar con echo ultimo reg

Estas en el tema de mostrar con echo ultimo reg en el foro de PHP en Foros del Web. hola, buenas, tengo una consulta un poco pava, mi duda es como poder obtener el ultimo id de una consulta, buscando por la web encontre ...
  #1 (permalink)  
Antiguo 09/08/2012, 10:04
 
Fecha de Ingreso: agosto-2012
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 0
mostrar con echo ultimo reg

hola, buenas, tengo una consulta un poco pava, mi duda es como poder obtener el ultimo id de una consulta, buscando por la web encontre este codigo.


Código:
$result = mysql_query("SELECT ISNULL(MAX(id_toma_encuesta),0)+1 FROM encuesta_capturada", $link);
lo que haria seria buscar el ultimo registro de id e incrementar 1, que se emplearia para la nueva encuesta que se realiza.
mi duda es si esta consulta esta correcta, si hay una mas facil, y como la puedo pasar a una variable a la id recuperada para trabajarla mejor :/

gracias desde ya n.n
  #2 (permalink)  
Antiguo 09/08/2012, 10:09
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: mostrar con echo ultimo reg

si tu campo de ID es "AUTOINCREMENT", no te hace falta... ;)

Sino, después de ejecutar esa consulta puedes hacer esto
Código PHP:
$resultado_consulta mysql_fetch_array($result);
$id $resultado_consulta[0]; 
Y en $id tendrias el id que buscas! ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 09/08/2012, 10:17
 
Fecha de Ingreso: agosto-2012
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: mostrar con echo ultimo reg

me tira este error mira.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Trabajo\tomar_e_3.php on line 86

la linea 86 es:
Cita:
$result = mysql_query("SELECT ISNULL(MAX(id_toma_encuesta),0)+1 FROM encuesta_capturada", $link);

$resultado_consulta = mysql_fetch_array($result);

$id = $resultado_consulta[0];

echo "<br>Esta es la Encuesta Nro : ".$id."<br>";
  #4 (permalink)  
Antiguo 09/08/2012, 10:22
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: mostrar con echo ultimo reg

Eso es pq falla tu consulta....

¿Has probado a realizarla en PHPMyAdmin, consola mysql, o similar?

Prueba poniendo esto:
Código PHP:
$result mysql_query("SELECT ISNULL(MAX(id_toma_encuesta),0)+1 FROM encuesta_capturada"$link) or die("Error en la consula sql: ".mysql_error());

$resultado_consulta mysql_fetch_array($result);

$id $resultado_consulta[0];

echo 
"<br>Esta es la Encuesta Nro : ".$id."<br>"
Así sabrás que error te arroja la consulta ;)
PD: Deduzco q la parte de conexión la haces... xD
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 09/08/2012, 10:25
 
Fecha de Ingreso: agosto-2012
Mensajes: 17
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: mostrar con echo ultimo reg

cita del error:

Cita:
Error en la consula sql: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0)+1 FROM encuesta_capturada' at line 1
osea amigo mio que... (?)

ya le pude resolver con este otro codigo que funca perfecto

Cita:
$resultado = mysql_query("SELECT MAX(id_toma_encuesta) FROM encuesta_capturada");
$max_id=mysql_result($resultado,0);
echo "el max id es ".$max_id." :) ";
Gracias eliazan de todos modos :D

Última edición por juan_isft; 09/08/2012 a las 10:34 Razón: solucion problema
  #6 (permalink)  
Antiguo 09/08/2012, 10:37
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: mostrar con echo ultimo reg

Cita:
Iniciado por juan_isft Ver Mensaje
cita del error:



osea amigo mio que... (?)

ya le pude resolver con este otro codigo que funca perfecto



Gracias eliazan de todos modos :D
Te iba a decir, q creo q es un fallo en ISNULL... deberias poner algo así como

MAX(ISNULL(campo, 0))

Pero, si el valor nunca va a ser null, no pasa nada xD
:)
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 09/08/2012, 10:52
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: mostrar con echo ultimo reg

El problema es que la función ISNULL de MySQL solo recibe 1 parámetro.
y esta función a su vez retorna 1 o 0 (uno o cero) dependiendo si es verdadero o falso
por lo que no te sirve de mucho el parámetro por defecto.

Al estar haciendo con PHP tu comprobación puedes hacer lo siguiente:

Código PHP:
Ver original
  1. $result = mysql_query("SELECT MAX(id_toma_encuesta) FROM encuesta_capturada", $link);
  2. $id = mysql_fetch_array($result);
  3. $id = $id[0];
  4.  
  5. if($id == NULL){
  6.  $id = 1 //acá tu contador inicial en caso que no haya ningún registro
  7. }else{
  8.  $id++;
  9. }

Lo siguiente es una recomendación.
Aprovecha las cualidades que da MySQL para campos autoincrementables, ya que de la manera en que tu lo estás haciendo corres el peligro de que te queden ids repetidos (si es que piensas claro utilizar el $id para almacenar otra tupla) Si lo haces de este modo tendrás que preocuparte de los bloqueos de tablas, o cruzar los dedos para que 2 personas no ingresen un id repetido al ingresar a la aplicación..

Un saludo.
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #8 (permalink)  
Antiguo 09/08/2012, 10:54
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: mostrar con echo ultimo reg

Usa un campo con autoincrement, mucho mejor que tratar de calcular tu el próximo ID.

Y como recomendación extra, no uses las funciones mysql_, cambia a mysqli o PDO como el mismo manual lo recomienda :)
__________________
Sin Ideas

Etiquetas: echo, mysql, reg, registro, ultimo, variables
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 07:07.