Foros del Web » Programando para Internet » PHP »

mostrar en orden por ID (order by id desc limit 1)

Estas en el tema de mostrar en orden por ID (order by id desc limit 1) en el foro de PHP en Foros del Web. Hola, tengo 1 script, que lo que hace es mostrar lo ultimo añadido, pero solo muestra el ultimo ID, y quiero que en vez de ...
  #1 (permalink)  
Antiguo 08/06/2010, 08:04
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
mostrar en orden por ID (order by id desc limit 1)

Hola, tengo 1 script, que lo que hace es mostrar lo ultimo añadido, pero solo muestra el ultimo ID, y quiero que en vez de mostrar el ultimo ID, muestre por ejemplo los 5 ultimos....

ahora mismo estoy usando:

SELECT * FROM enlaces order by id desc limit 1
  #2 (permalink)  
Antiguo 08/06/2010, 08:10
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: mostrar en orden por ID (order by id desc limit 1)

tienes que cambiar el limit 1 a limit 5 y listo, el limit restringe cuantos valores se van a mostrar
  #3 (permalink)  
Antiguo 08/06/2010, 08:32
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: mostrar en orden por ID (order by id desc limit 1)

sip, pero cuando lo cambio, y hago otra tabla al lado, para poner el $caratula, y $nombre

me sale lo mismo :S, se repite

entra y mira a lo k me refiero: http://todoenlaces.org/peliculas.php
  #4 (permalink)  
Antiguo 08/06/2010, 08:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP a Bases de Datos
  #5 (permalink)  
Antiguo 08/06/2010, 08:42
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: mostrar en orden por ID (order by id desc limit 1)

ah ok, si pones tu codigo seria mejor, pero por lo que recuerdo lo tienes por ejemplo asi:

Código PHP:
<?php
while($row=mysql_fetch_array($result)) {
  
$nom=$row['nombre'];
  
$caratula=$row['caratula'];
  
$id=$row['id'];      
}
?>
<tr>
<td><?php echo $nom ?></td>
<td><?php echo $caratula ?></td>
<td><?php echo $id ?></td>
</tr>
y tendria que estar asi:

Código PHP:
<?php
while($row=mysql_fetch_array($result)) {
echo
"<tr>
<td>"
.$row['nombre']."</td>
<td>"
.$row['caratula']."</td>
<td>"
.$row['id']."</td>
</tr>"
;  
}
?>
  #6 (permalink)  
Antiguo 08/06/2010, 08:42
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: mostrar en orden por ID (order by id desc limit 1)

asi esta:

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?php
$connect
=mysql_connect("","","");
mysql_select_db("",$connect);
$sql "SELECT * FROM enlaces order by id desc limit 1";  
$result mysql_query($sql$connect) or die (mysql_error());  
 
while (
$row mysql_fetch_array($result)) { 
    
$nombre $row['nombre']; 
    
$caratula $row['caratula']; 
    
$id=$row['id'];

?>
 
<table align="center">
    <tr>
      <td width="135" align="center"><img style="width: 120px; height: 180px;" src="<?php echo $caratula?>" /></td>
    <td width="135" align="center"><img style="width: 120px; height: 180px;" src="<?php echo $caratula?>" /></td></tr>
    <tr>
      <td align="center"><?php echo $nombre?></td>
    <td align="center"><?php echo $nombre?></td></tr>
    <tr>
      <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
    <tr>
      <td align="center"><a href="enlace.php?ver=<?php echo $id?>">Ver Mas</a></td>
    <td align="center"><a href="enlace.php?ver=<?php echo $id?>">Ver Mas</a></td></tr>
</table>
</body>
</html>
  #7 (permalink)  
Antiguo 08/06/2010, 08:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: mostrar en orden por ID (order by id desc limit 1)

Tienes que añadir limit 5, en lugar de limit 1 a la consulta.
Por lo demás, tienes fallos en el modo en que tratas de mostrar los datos con PHP. Mira que todo el código html lo estás sacando de la iteración del while, y así no puede mostrarte más que uno, y además con repetición, dado el modo en que lo estás haciendo. Pregunta en el foro PHP. Es fácil, pero aquí no podemos responder a eso: no es el lugar.
  #8 (permalink)  
Antiguo 08/06/2010, 08:51
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: mostrar en orden por ID (order by id desc limit 1)

si hay estaba el tema, pero me lan movido aqui
  #9 (permalink)  
Antiguo 08/06/2010, 08:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: mostrar en orden por ID (order by id desc limit 1)

Most,
la parte de base de datos es añadir el limit 5;
ahora pide el cambio al foro PHP para que te ayuden con el modo en que trabajas con los datos cargados desde la base.
  #10 (permalink)  
Antiguo 08/06/2010, 08:56
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: mostrar en orden por ID (order by id desc limit 1)

ok voy a pedir el cambio, gracias...
  #11 (permalink)  
Antiguo 08/06/2010, 09:05
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: mostrar en orden por ID (order by id desc limit 1)

podrías hacerlo asi:

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?php
$connect
=mysql_connect("","","");
mysql_select_db("",$connect);
$sql "SELECT * FROM enlaces order by id desc limit 5";  
$result mysql_query($sql$connect) or die (mysql_error());  
 
while (
$row mysql_fetch_array($result)) { 
    
$nombre[] = $row['nombre']; 
    
$caratula[] = $row['caratula']; 
    
$id[]=$row['id'];

?>
<table align="center">
    <tr>
<?php
for($i=0;$i<count($nombre);$i++)
 echo 
'<td width="135" align="center"><img style="width: 120px; height: 180px;" src="'.$caratula[$i].'" /></td>';
?>
</tr>
    <tr>
<?php
for($i=0;$i<count($nombre);$i++)
 echo 
'<td align="center">'.$nombre[$i].'</td>';
?>
</tr>
    <tr>
      <td colspan="<?php echo count($id); ?>">&nbsp;</td>
</tr>
    <tr>
<?php
for($i=0;$i<count($nombre);$i++)
 echo 
'<td align="center"><a href="enlace.php?ver='.$id[$i].'">Ver Mas</a></td>';
?>
</tr>
</table>
</body>
</html>
pero no es la forma mas optima, lo mejor seria q muestres una fila por cada contenido:

Código PHP:
<?php
$connect
=mysql_connect("","","");
mysql_select_db("",$connect);
$sql "SELECT * FROM enlaces order by id desc limit 1"
$result mysql_query($sql$connect) or die (mysql_error()); 
echo 
'<table align="center">';
while (
$row mysql_fetch_array($result)) { 
echo
'<tr> 
<td><img style="width: 120px; height: 180px;" src="'
.$row['caratula'].'"></td> 
<td>'
.$row['nombre'].'</td> 
<td><a href="enlace.php?ver="'
.$row['id'].'">Ver mas</a></td> 
</tr>'
;  

echo 
'</table>';
?>
ni me di cuenta q movieron el tema jeje, te lo tienen q mover de nuevo a php
  #12 (permalink)  
Antiguo 08/06/2010, 09:14
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: mostrar en orden por ID (order by id desc limit 1)

bueno, lo he puesto asi, deveria de valer no?

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?php
$connect
=mysql_connect(" "," "," ");
mysql_select_db(" ",$connect);
$sql "SELECT * FROM enlaces order by id desc limit 2";  
$result mysql_query($sql$connect) or die (mysql_error());  
 
while (
$row mysql_fetch_array($result)) {  
echo 
'<table align="center">
    <tr>
      <td width="135" align="center"><img style="width: 120px; height: 180px;" src="'
.$row['caratula'].'" /></td>
    <td width="135" align="center"><img style="width: 120px; height: 180px;" src="'
.$row['caratula'].'" /></td></tr>
    <tr>
      <td align="center">'
.$row['nombre'].'</td>
    <td align="center">'
.$row['nombre'].'</td></tr>
    <tr>
      <td>&nbsp;</td>
    <td>&nbsp;</td></tr>
    <tr>
      <td align="center"><a href="enlace.php?ver='
.$row['id'].'">Ver Mas</a></td>
    <td align="center"><a href="enlace.php?ver='
.$row['id'].'">Ver Mas</a></td></tr>
</table>'
;

?>
</body>
</html>

Edito: lo he puesto asi, y me sige dando solo 1, en este caso el del prince of persia:


Última edición por Most; 08/06/2010 a las 09:19
  #13 (permalink)  
Antiguo 08/06/2010, 09:18
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: mostrar en orden por ID (order by id desc limit 1)

bueno te va a crear una tabla por cada contenido, pero si va a funcionar.

Ojo que estas repitiendo cada dato 2 veces, en cada <tr>, solo tiene que haber un <td>
  #14 (permalink)  
Antiguo 08/06/2010, 09:27
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: mostrar en orden por ID (order by id desc limit 1)

oK, ahora lo he puesto asi y si funciona, pero se me ve 1 abajo de otro, mira: http://todoenlaces.org/peliculas.php como hago para que se me vean 1 al lado del otro?

Codigo:

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?php
$connect
=mysql_connect("","","");
mysql_select_db("",$connect);
$sql "SELECT * FROM enlaces order by id desc limit 2";  
$result mysql_query($sql$connect) or die (mysql_error());  
 
while (
$row mysql_fetch_array($result)) {  
echo 
'<table align="center">
    <tr>
    <td width="135" align="center"><img style="width: 120px; height: 180px;" src="'
.$row['caratula'].'" /></td></tr>
    <tr>
      <td align="center">'
.$row['nombre'].'</td></tr>
    <tr>
      <td>&nbsp;</td></tr>
    <tr>
      <td align="center"><a href="enlace.php?ver='
.$row['id'].'">Ver Mas</a></td></tr>
</table>'
;

?>
</body>
</html>
  #15 (permalink)  
Antiguo 08/06/2010, 09:32
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: mostrar en orden por ID (order by id desc limit 1)

puede ser así:

Código PHP:
<html> 
<head> 
<title>Documento sin t&iacute;tulo</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 
<body> 
<table><tr>
<?php 
$connect
=mysql_connect("","",""); 
mysql_select_db("",$connect); 
$sql "SELECT * FROM enlaces order by id desc limit 2";   
$result mysql_query($sql$connect) or die (mysql_error());   
  
while (
$row mysql_fetch_array($result)) {   
echo 
'<td><table align="center"> 
    <tr> 
    <td width="135" align="center"><img style="width: 120px; height: 180px;" src="'
.$row['caratula'].'" /></td></tr> 
    <tr> 
      <td align="center">'
.$row['nombre'].'</td></tr> 
    <tr> 
      <td>&nbsp;</td></tr> 
    <tr> 
      <td align="center"><a href="enlace.php?ver='
.$row['id'].'">Ver Mas</a></td></tr> 
</table><td>'

}  
?> 
</tr></table></body> 
</html>
  #16 (permalink)  
Antiguo 08/06/2010, 09:37
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 10 meses
Puntos: 9
Respuesta: mostrar en orden por ID (order by id desc limit 1)

Cita:
Iniciado por Most Ver Mensaje
oK, ahora lo he puesto asi y si funciona, pero se me ve 1 abajo de otro, mira: [url]http://todoenlaces.org/peliculas.php[/url] como hago para que se me vean 1 al lado del otro?

Codigo:

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?php
$connect
=mysql_connect("","","");
mysql_select_db("",$connect);
$sql "SELECT * FROM enlaces order by id desc limit 2";  
$result mysql_query($sql$connect) or die (mysql_error());  
 
while (
$row mysql_fetch_array($result)) {  
echo 
'<table align="center">
    <tr>
    <td width="135" align="center"><img style="width: 120px; height: 180px;" src="'
.$row['caratula'].'" /></td></tr>
    <tr>
      <td align="center">'
.$row['nombre'].'</td></tr>
    <tr>
      <td>&nbsp;</td></tr>
    <tr>
      <td align="center"><a href="enlace.php?ver='
.$row['id'].'">Ver Mas</a></td></tr>
</table>'
;

?>
</body>
</html>

comienza la <table> con un <tr> antes del WHILE y termina solo la <table> despues del mismo luego pones una condicion para imprimir los </tr><tr>. Algo asi...

Código PHP:
echo "<table><tr>";
$n=-1//inicias un contador desde -1
while ($row mysql_fetch_array($result)) {  
    
$n++;
    if(
$n&#37;2==0 )//Entre el $n y el 2 hay un signo de porcentaje pero no se porque  no lo muestra... El 2 es la cantidad de celdas por fila que quieras
            
echo "</tr><tr>";

    <
td width="135" align="center"><img style="width: 120px; height: 180px;" src="'.$row['caratula'].'" /></td></tr>
    <
tr>
      <
td align="center">'.$row['nombre'].'</td></tr>
    <
tr>
      <
td>&nbsp;</td></tr>
    <
tr>
      <
td align="center"><a href="enlace.php?ver='.$row['id'].'">Ver Mas</a></td>;

echo 
"<table>";
?> 
Algo rusticón pero es lo que se me ocurrió ahorita. quicke88 muestra una forma mas sencilla pero con el inconveniente de que si son mas de 10 te los pondra todos a un costado y se extendera tu pag...

Saludos
  #17 (permalink)  
Antiguo 08/06/2010, 09:48
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: mostrar en orden por ID (order by id desc limit 1)

muchas gracias, ahora otra cosa para no abrir otro tema, ya que viene a ser lo mismo, cuando le doy a ver mas se supone que me manda a /enlaces.php?ver=ID

pues bien, la ID la coge pero en archivo enlaces, se ve que no coge bien la ID :S

aqui el codigo:

Código HTML:
<html>
<head>
<title>pelis.php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<?php
$connect=mysql_connect("","","");
var_dump($id); 
mysql_select_db("",$connect);
$sql = "SELECT * FROM enlaces WHERE id = $id";
$result = mysql_query($sql, $connect) or die (mysql_error());

while ($row = mysql_fetch_array($result)) { 
    $enlaces = $row['enlaces'];
	$detalles = $row['detalles'];
	$servidor = $row['servidor'];
	$anio = $row['anio'];
	$nombre = $row['nombre']; 
    $caratula = $row['caratula']; 
    $id=$row['id'];
}

?>
<table>
    <tr>
        <td rowspan="4"><img style="width: 120px; height: 180px;" src="<? echo $caratula; ?>" /></td>
        <td>
            <table>
                <tr>
                    <td><b>Nombre:</b> <? echo $nombre; ?></td>
                </tr>
                <tr>
                    <td><b>Año:</b> <? echo $anio; ?></td>
                </tr>
                <tr>
                    <td><b>Servidor:</b> <? echo $servidor; ?></td>
                </tr>
                <tr>
                    <td><b>Detalles/sinopsis:</b><br><textarea style="width:480px; height:100px; padding:5px"><? echo $detalles; ?></textarea></td>
                </tr>
            </table>
        </td>
    </tr>
</table>
<b>Links de descarga:</b><br><textarea style="width:480px; height:100px; padding:5px"><? echo $enlaces ?></textarea>
<?
?>
</body>


La variable $id me la da como null :S
</html> 
  #18 (permalink)  
Antiguo 08/06/2010, 09:53
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: mostrar en orden por ID (order by id desc limit 1)

si te fijas en tu enlace, estas enviando la variable "ver" que contiene el valor del id

enlaces.php?ver=ID

osea q para recibir ese valor lo haces asi:

Código PHP:
$id=$_GET["ver"]: 
pon esta linea antes del var_dump y veras q ya tienes el id en $id
  #19 (permalink)  
Antiguo 08/06/2010, 09:58
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: mostrar en orden por ID (order by id desc limit 1)

Ok, echo me da:

Cita:
Parse error: syntax error, unexpected ':' in /homepages/18/d317375696/htdocs/enlace.php on line 10
code:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>pelis.php</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7.  
  8. <?php
  9. $connect=mysql_connect("","","");
  10. $id=$_GET["ver"]:  
  11. var_dump($id);
  12. mysql_select_db("",$connect);
  13. $sql = "SELECT * FROM enlaces WHERE id = $id";
  14. $result = mysql_query($sql, $connect) or die (mysql_error());
  15.  
  16. while ($row = mysql_fetch_array($result)) {
  17.     $enlaces = $row['enlaces'];
  18.     $detalles = $row['detalles'];
  19.     $servidor = $row['servidor'];
  20.     $anio = $row['anio'];
  21.     $nombre = $row['nombre'];
  22.     $caratula = $row['caratula'];
  23.     $id=$row['id'];
  24. }
  25.  
  26. ?>
  27. <table>
  28.     <tr>
  29.         <td rowspan="4"><img style="width: 120px; height: 180px;" src="<? echo $caratula; ?>" /></td>
  30.         <td>
  31.             <table>
  32.                 <tr>
  33.                     <td><b>Nombre:</b> <? echo $nombre; ?></td>
  34.                 </tr>
  35.                 <tr>
  36.                     <td><b>Año:</b> <? echo $anio; ?></td>
  37.                 </tr>
  38.                 <tr>
  39.                     <td><b>Servidor:</b> <? echo $servidor; ?></td>
  40.                 </tr>
  41.                 <tr>
  42.                     <td><b>Detalles/sinopsis:</b><br><textarea style="width:480px; height:100px; padding:5px"><? echo $detalles; ?></textarea></td>
  43.                 </tr>
  44.             </table>
  45.         </td>
  46.     </tr>
  47. </table>
  48. <b>Links de descarga:</b><br><textarea style="width:480px; height:100px; padding:5px"><? echo $enlaces ?></textarea>
  49. <?
  50. ?>
  51. </body>
  52. </html>
  #20 (permalink)  
Antiguo 08/06/2010, 10:04
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: mostrar en orden por ID (order by id desc limit 1)

si lees lo que dice el error, hay un error de sintaxis, no se esperaba ":" en la linea 10

fijate la linea 10: $id=$_GET["ver"]:

acaba en ":" en lugar de acabar en ";" (fue un error mio en el anterior post).

Tienes q tomarte el tiempo de leer el error, y ver si puedes solucionarlo, ya que en este caso era algo bien obvio.
  #21 (permalink)  
Antiguo 08/06/2010, 10:11
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
De acuerdo Respuesta: mostrar en orden por ID (order by id desc limit 1)

Ok, muchas gracias, es que como estoy haciendo varias cosas a la vez no he leido el error, bueno, por el momento ya esta todo muchas gracias quike88.
  #22 (permalink)  
Antiguo 08/06/2010, 10:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde Bases de Datos a PHP
  #23 (permalink)  
Antiguo 08/06/2010, 10:18
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 7 meses
Puntos: 87
Respuesta: mostrar en orden por ID (order by id desc limit 1)

Cita:
Iniciado por Most Ver Mensaje
Ok, muchas gracias, es que como estoy haciendo varias cosas a la vez no he leido el error, bueno, por el momento ya esta todo muchas gracias quike88.
ok, me alegra q ya te este funcionando!

Etiquetas: limit, orden, order
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 17:47.