Foros del Web » Programando para Internet » PHP »

Ayuda para obtener ultimo registro insertado

Estas en el tema de Ayuda para obtener ultimo registro insertado en el foro de PHP en Foros del Web. Buenas a todos. he implementado el tipico website de noticias, en el cual van apareciendo en un listado (en flash) un titulo y una breve ...
  #1 (permalink)  
Antiguo 05/07/2007, 09:37
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Ayuda para obtener ultimo registro insertado

Buenas a todos.

he implementado el tipico website de noticias, en el cual van apareciendo en un listado (en flash) un titulo y una breve descripcioon de la noticia. al clickar encima lleva a la noticia en cuestión. con php+xml+mysql.

ahora lo que quiero hacer es destacar la ultima noticia insertada automáticamente, y que al ser modificada cambie la posición, y la que estaba primera pase al listado.

he encontrado un post de un compañero del foro, y proponian algo tal que asi:

//Sentencia sql (sin limit)
$_pagi_sql = "select * from noticias LIMIT 0, 1";

pero a mi esto me da el siguiente error:

Error en la consulta limitada: select * from noticias LIMIT 0, 10 LIMIT 0,3. Mysql dijo: 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 'LIMIT 0,3' at line 1

alguien sabe donde esta el error? o si estoy equivocado y tengo q hacer otra cosa?

saludos,

ferranWEB
  #2 (permalink)  
Antiguo 05/07/2007, 09:53
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Ayuda para obtener ultimo registro insertado

Pues el sql solo permite un LIMIT por sentencia. Tendrias que hacer otra consulta con tu segundo limit. Aunque dijo si estas tomando los primeros 10 y quieres leer unicamente los primeros 3 sería cuestion de que limitaras tu foreach o whie.

Saludillos.
  #3 (permalink)  
Antiguo 05/07/2007, 10:44
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

gracias Mauled por responder.

no acabo de entender lo que me dices. yo lo que quiero es que me coja el ultimo registro que he insertado. si hago un limit 1 tambien me da error, por lo que entiendo que no lo estaré utilizando correctamente.

sabes como podria obtener dicho id?

saludos
  #4 (permalink)  
Antiguo 05/07/2007, 10:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ayuda para obtener ultimo registro insertado

El ultimo ID lo puedes obtener usando mysql_insert_id().

Saludos.
  #5 (permalink)  
Antiguo 05/07/2007, 11:02
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Ayuda para obtener ultimo registro insertado

Pues su estas usando mysql podrias usar la función mysql_insert_id(). O podrias usar la función max() si estas usando algun indice en tu tabla, para obtener el ultimo elemento insertado. Me parece que la función que te menciono es comun en todas las bd.

Saludillos.
  #6 (permalink)  
Antiguo 06/07/2007, 02:59
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

buenos dias, pues no me acaba de salir.

el problema es que yo tengo una consulta mysql en un php, que me genera un xml para ser interpretado por el flash. os dejo el ejemplo de mi php:

Código:
<?

include("includes/config.php");

$cnx = conectar();

$_pagi_sql = "SELECT idnoticia,titulo,texto,archivo FROM noticias ORDER by idnoticia DESC";

echo "<?xml version='1.0' encoding='iso-8859-1'?>"
?>

<noticias>
<?
//Leemos y escribimos los registros de la página actual
while($row = mysql_fetch_array($_pagi_result)){

?>
<promocion idnoticia="<? echo $row['idnoticia'];?>" titulo="<? echo $row['titulo'];?>"  texto="<? echo $row['texto'];?>" archivo="<? echo $row['archivo'];?>"/>
<?
}
?>
</productos>
de que manera he de utilizar el MAX o el mysql_insert_id() para saber el ultimo registro insertado?

saludos,

FerranWEB
  #7 (permalink)  
Antiguo 06/07/2007, 08:07
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

ninguna sugerencia?

saludos,

ferranWEB
  #8 (permalink)  
Antiguo 06/07/2007, 08:18
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Ayuda para obtener ultimo registro insertado

Código PHP:
<?

include("includes/config.php");

$cnx conectar();

$_pagi_sql "SELECT idnoticia,titulo,texto,archivo FROM noticias ORDER by idnoticia DESC";
?>

<?xml version='1.0' encoding='iso-8859-1'?>
<noticias>
<?
//Leemos y escribimos los registros de la página actual
while($row mysql_fetch_array($_pagi_result)){

?>
<promocion idnoticia="<? echo $row['idnoticia'];?>" titulo="<? echo $row['titulo'];?>"  texto="<? echo $row['texto'];?>" archivo="<? echo $row['archivo'];?>"/>
<?
}
?>
</productos>
No has dicho dónde te tira el error, pero te he corregido algunas cosas. Por cierto, ¿dónde empieza la etiqueta <productos>?

  #9 (permalink)  
Antiguo 06/07/2007, 08:22
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

hola david,

gracias por las correcciones, pero he quitado cosas para intentar dejar el codigo que funciona.

el php me funciona bien. en este caso, obtengo todo el listado de noticias de la web, y las muestro en un flash siendo llamadas por su id.

el problema no está en el codigo. he puesto el codigo de prueba. lo que quiero hacer es, que además de hacer una consulta con todas las noticias, separar la ultima noticia insertada. la idea es ponerla destacada, más grande y con foto. solo necesito sacar el ultimo idnoticia insertado, y no hay forma!!

se te ocurre algo?

saludos y gracias por tu ayuda!!

ferranWEB
  #10 (permalink)  
Antiguo 06/07/2007, 08:32
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Ayuda para obtener ultimo registro insertado

Ah, vaya, pensaba que tenías problemas con el código. Para extraer la última noticia puedes hacerlo de diversas maneras. Una de ellas podía ser en la propia petición SQL poniendo el límite a 1.

"SELECT idnoticia,titulo,texto,archivo FROM noticias ORDER by idnoticia DESC limit 1"

¿No te sirve esto como consulta aparte?

Sino... en el propio while puedes poner un contador que vaya incrementando por cada noticia, el cual es inicialmente 0. Entonces añades un condicional en que si el contador es 0 la noticia se muestra más grande. Luego ya en 1, 2, 3, 4, etc.. se mostrará normal.

  #11 (permalink)  
Antiguo 06/07/2007, 08:53
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

buenas david,

eso habia probado yo, pero te posteo el error que me da la consulta:

Error en la consulta limitada: SELECT idnoticia,titulo,texto,archivo FROM noticias ORDER by idnoticia DESC limit 1 LIMIT 0,3. Mysql dijo: 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 'LIMIT 0,3' at line 1

sabes a que hace referencia o como solucionarlo?

la segunda opcion que me has dado no la entendi, pero la primera deberia funcionar, no?

saludos!

ferranWEB
  #12 (permalink)  
Antiguo 06/07/2007, 09:41
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Ayuda para obtener ultimo registro insertado

Prueba así:

"SELECT * FROM noticias ORDER by idnoticia DESC limit 1"

Suerte
  #13 (permalink)  
Antiguo 09/07/2007, 02:55
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

buenas david,

he probado y el mismo error:

Error en la consulta limitada: SELECT * FROM noticias ORDER by idnoticia DESC limit 1 LIMIT 0,3. Mysql dijo: 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 'LIMIT 0,3' at line 1

pq no podre obtener el ultimo registro insertado!!

algo estará mal en la consulta.

saludos
  #14 (permalink)  
Antiguo 09/07/2007, 04:01
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Re: Ayuda para obtener ultimo registro insertado

A ver segun ese mensaje la sentencia que tienes es:
Código:
SELECT * FROM noticias ORDER by idnoticia DESC limit 1 LIMIT 0,3.
eso esta mal, prueba con:
Código PHP:
SELECT FROM noticias ORDER by idnoticia DESC limit  0,
con eso debe de darte el ultimo Id que hay.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #15 (permalink)  
Antiguo 09/07/2007, 04:05
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

hola bytevamp,

no hay forma, he probado asi, he mirado manuales, y me da el mismo error!!!

Error en la consulta limitada: SELECT * FROM noticias ORDER by idnoticia DESC limit 0,1 LIMIT 0,3. Mysql dijo: 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 'LIMIT 0,3' at line 1

pq?
  #16 (permalink)  
Antiguo 09/07/2007, 08:13
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

he comprobado que si ejecuto la consulta directamente en el phpMyAdmin funciona, pero en el php me da error...

puede ser un problema del php?
  #17 (permalink)  
Antiguo 09/07/2007, 08:22
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda para obtener ultimo registro insertado

ya esta solucionado!!!

he modificado el codigo php que os puse hace dias más arriba. he quitado el paginator, y he hecho una consulta con un query directamente. y me ha funcionado!!

gracias a todos los que habeis sufrido conmigo en silencio....

jajajaja

saludos,

ferranWEB
  #18 (permalink)  
Antiguo 09/07/2007, 08:53
Avatar de karemlis  
Fecha de Ingreso: agosto-2006
Mensajes: 153
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Ayuda para obtener ultimo registro insertado

Hola!!
bueno estaba buscando algo parecido a lo que necesitaba el amigo ferranWEB

Tambien deseo que el ultimo registro insertado quede en el primer lugar de la lista, pero no pasa eso...queda en cualquier lugar, aveces en el priemro, otras en el segundo includo aveces ni alcanza a verse en la pagina, ya que hay un limit para mostrar de 10 en 10 los registros...
quizas eso sea lo q impide que se vea en primer lugar..

ooohh!! se me olvidaba comentar tambien que mi tabla no tiene clave primaria..jejeje..es q no la necesito para el uso que le doy, por eso no la cree...nose si esto tenga relacion en que no muestre en primer lugar el ultimo regsitro insertado,

ojala alguien pueda ayudar!!

saludos

karen

Última edición por karemlis; 09/07/2007 a las 09:00
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 00:11.