Autor
|
Tema: problema codigo paginacion (Leído 8,196 veces)
|
soru13
Desconectado
Mensajes: 246
|
hola,pues resulta que estoy intentando personalizar mi código de paginación,es este: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Documento sin título</title> </head>
<body><? include ("config.php"); $sql = "select * from videos order by id desc limit 25"; //Instrucción a ejecutarse en la bbdd. $squery = mysql_query($sql); //Ejecución de la instrucción while($row = mysql_fetch_array($squery)){ //Recuperar los datos de un registro o hilera (row) y meterlo a un array $url = $row['id'] ?> <? // Datos de conexión a la base $base="bd"; $con=mysql_connect(localhost,user,pass); mysql_select_db($base,$con); if (!isset($_GET['pg'])) //para el inicio $pg = 0; else $pg=$_GET['pg']; //cuando haces click sobre el siguiente link del paginador $cantidad=4; // cantidad de resultados por página $inicial = $pg * $cantidad;
$pegar = "SELECT img, nombre FROM videos LIMIT $inicial,$cantidad"; $cad = mysql_db_query($base,$pegar) or die (mysql_error());
$contar = "SELECT * FROM videos"; $contarok= mysql_db_query($base,$contar); $total_records = mysql_num_rows($contarok); $pages = intval($total_records / $cantidad);
while ($registro = mysql_fetch_row($cad)){ # insertamos un salto de línea en la tabla HTML
echo "<tr align=center height= 45px>";
# establecemos el bucle de lectura del ARRAY # con los resultados de cada LINEA # y encerramos cada valor en etiquetas <td></td> # para que aparezcan en celdas distintas de la tabla
foreach($registro as $clave){ echo "<div style='float: left;'><a href='videos/$url' style='border:0'>".$clave."</a></div> " ;
} }
echo "<br>";
// Cerramos la conexión a la base $con=mysql_close($con);
// Creando los enlaces de paginación echo "<br><br><br><br><br><br><p class=fonty align='center'>"; if ($pg != 0) { $url = $pg - 1; echo "<a href='$PHP_SELF?pg=".$url."'>« Anterior</a> "; } else { echo " "; } for ($i = 0; $i <= $pages; $i++) { if ($i == $pg) { if ($i == "0") { echo "<b> 1 </b>"; } else { $i = $i+1; echo "<b> ".$i." </b>"; } } else { if ($i == "0") { echo "<a href=$PHP_SELF?pg=".$i.">1</a> "; } else { echo "<a href='$PHP_SELF?pg=".$i."'>"; $i = $i+1; echo $i."</a> "; } } } if ($pg < $pages) { $url = $pg + 1; echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente »</a>"; } else { echo " "; } echo "</p>"; ?> </body> </html> el caso es que me da un error en la linea 100, Parse error: syntax error, unexpected $end in /home2/rapmadri/public_html/tupixxx/paginar.php on line 100 y la linea 100 es esta: me salta este error cuando encima del código de paginación le pongo éste para obtener la id <? include ("config.php"); $sql = "select * from videos order by id desc limit 25"; //Instrucción a ejecutarse en la bbdd. $squery = mysql_query($sql); //Ejecución de la instrucción while($row = mysql_fetch_array($squery)){ //Recuperar los datos de un registro o hilera (row) y meterlo a un array $url = $row['id'] ?> ¿porqué me sale éste error? gracias
|
|
« Última modificación: 21 Julio 2010, 17:24 pm por soru13 »
|
En línea
|
|
|
|
Shell Root
|
Debes de mejorar la estructura de tú código. Te falta un cerrar un {. Creo que es en la siguiente linea: include ("config.php"); $sql = "select * from videos order by id desc limit 25"; //Instrucción a ejecutarse en la bbdd. //Ejecución de la instrucción
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
Carluís
Desconectado
Mensajes: 49
Estableciendo conexión...
|
El mismo texto de error generado te está diciendo la respuesta.
Parse error: syntax error, unexpected $end in
+1 con el comentario de shell root.
|
|
|
En línea
|
|
|
|
soru13
Desconectado
Mensajes: 246
|
aver lo conseguí arreglar un poquillo y ahora me muestra las imagenes y el texto,pero el problema es que carga primero todas las imagenes y luego todo el texto,yo lo que necesito es que me carge 1 imagen y debajo esté su texto correspondiente por id,y así sucesivamente,aver si me podeis ayudar,aqui os dejo el codigo tal cual lo tengo ahora: <? // Datos de conexión a la base $base="rapmadri_graffitiongirls"; if (!isset($_GET['pg'])) //para el inicio $pg = 0; else $pg=$_GET['pg']; //cuando haces click sobre el siguiente link del paginador $cantidad=4; // cantidad de resultados por página $inicial = $pg * $cantidad; $pegar = "SELECT img FROM videos order by id desc LIMIT $inicial,$cantidad"; $pegar2 = "SELECT nombre FROM videos order by id desc LIMIT $inicial,$cantidad"; $contar = "SELECT * FROM videos"; $pages = intval($total_records / $cantidad); # insertamos un salto de línea en la tabla HTML echo "<table align='center' border='0' width='100%'>"; echo "<tr align=center height= 45px><td>"; # establecemos el bucle de lectura del ARRAY # con los resultados de cada LINEA # y encerramos cada valor en etiquetas <td></td> # para que aparezcan en celdas distintas de la tabla foreach($registro as $clave){ echo "<div style='float: left;'>".$clave."  </td></tr>" ; } } # insertamos un salto de línea en la tabla HTML # establecemos el bucle de lectura del ARRAY # con los resultados de cada LINEA # y encerramos cada valor en etiquetas <td></td> # para que aparezcan en celdas distintas de la tabla foreach($registro2 as $clave2){ echo "<tr align=center height= 45px><td>"; echo "<div style='float: left;'>".$clave2."  </td></tr>" ; } } echo "</table></div>"; // Cerramos la conexión a la base // Creando los enlaces de paginación echo "<br><br><br><br><br><br><p class=fonty align='center'>"; if ($pg != 0) { $url = $pg - 1; echo "<a href='$PHP_SELF?pg=".$url."'>« Anterior</a> "; } else { echo " "; } for ($i = 0; $i <= $pages; $i++) { if ($i == $pg) { if ($i == "0") { echo "<b> 1 </b>"; } else { $i = $i+1; echo "<b> ".$i." </b>"; } } else { if ($i == "0") { echo "<a href=$PHP_SELF?pg=".$i.">1</a> "; } else { echo "<a href='$PHP_SELF?pg=".$i."'>"; $i = $i+1; echo $i."</a> "; } } } if ($pg < $pages) { $url = $pg + 1; echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente »</a>"; } else { echo " "; } echo "</p>"; ?>
como puedo hacer eso? gracias a todos por la ayuda
|
|
« Última modificación: 26 Julio 2010, 05:57 am por soru13 »
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
xD, esta facir man y usa un poco la lógica... Bueno te explico lo que pasa. Haces esto: # insertamos un salto de línea en la tabla HTML echo "<table align='center' border='0' width='100%'>"; echo "<tr align=center height= 45px><td>"; # establecemos el bucle de lectura del ARRAY # con los resultados de cada LINEA # y encerramos cada valor en etiquetas <td></td> # para que aparezcan en celdas distintas de la tabla foreach($registro as $clave){ echo "<div style='float: left;'>".$clave."  </td></tr>" ; } } # insertamos un salto de línea en la tabla HTML # establecemos el bucle de lectura del ARRAY # con los resultados de cada LINEA # y encerramos cada valor en etiquetas <td></td> # para que aparezcan en celdas distintas de la tabla foreach($registro2 as $clave2){ echo "<tr align=center height= 45px><td>"; echo "<div style='float: left;'>".$clave2."  </td></tr>" ; } }
Osea, en el primer while muestra la imágenes y hasta que no termine el primer bucle infinito while no pasa al otro... Osea El bucle se repite, se repite, se repite y hasta que llegue al fin y luego se termina el bucle while y luego pasa la otra parte del source... Hasta que no termine el primer while de mostrar la imágenes no pasa al otro bucle y por lo tanto primero carga la imágenes y luego de terminar de cargar las imágenes pasa al otro bucle que es el que muestra los texto... Ahora te explico como hacerlo para que salga una imagen y luego el texto... <?php $sql = "Select id, nombre from lol";//Aqui lo que hago es seleccionar dos campos en vez de uno. echo $row['id'];//Aqui muestro la id echo $row['nombre'];//Aqui el nombre //Luego vuelve si existe mas datos y si no hay mas ps se termina } ?>
De esta forma sale de esta manera los datos: 1jesus 2edwin 3jose
Pero si lo hago de la manera que lo haces, sale asi: <?php $sql = "Select id from lol"; $sql2 = "Select nombre from lol"; echo $row['id']; } echo '<br>'; echo $row['nombre']; } ?>
Salida Saludos!
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
soru13
Desconectado
Mensajes: 246
|
~ Yoya ~ probé los dos códigos que me facilitaste y no es exactamente lo que quiero,aver yo tengo ya un código que me muestra el contenido bien y querría ponerle a ese código un paginador,ya que el código de paginador que puse al principio del post no consigo ponerlo bien ya que debería quedar así y no lo consigo,el codigo de esa pagina es: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" charset="utf-8"; /> </head> <body> <p><? include ("config.php"); $sql = "select * from videos order by id desc limit 25"; //Instrucción a ejecutarse en la bbdd. //Ejecución de la instrucción //Recuperar los datos de un registro o hilera (row) y meterlo a un array $url = $row['id'] ?> </p> <div style="float: left;"><?php echo "<a href='videos/$url' style='border:0'>".$row['img']."</a> ";; ?><br /><?php echo "<a href='videos/$url'>".$row['nombre']."</a>" ?></div> <? } ?> <div style="clear: both;"> <br> </body> </html>
pero no consigo ponerle el código de paginación,como sería? el código de paginación que de momento tengo es éste lista.php<? // Datos de conexión a la base $base="rapmadri_graffitiongirls"; if (!isset($_GET['pg'])) //para el inicio $pg = 0; else $pg=$_GET['pg']; //cuando haces click sobre el siguiente link del paginador $cantidad=4; // cantidad de resultados por página $inicial = $pg * $cantidad; $pegar = "SELECT img FROM videos order by id desc LIMIT $inicial,$cantidad"; $pegar2 = "SELECT nombre FROM videos order by id desc LIMIT $inicial,$cantidad"; $contar = "SELECT * FROM videos"; $pages = intval($total_records / $cantidad); # insertamos un salto de línea en la tabla HTML echo "<table align='center' border='0' width='100%'>"; echo "<tr align=center height= 45px><td>"; # establecemos el bucle de lectura del ARRAY # con los resultados de cada LINEA # y encerramos cada valor en etiquetas <td></td> # para que aparezcan en celdas distintas de la tabla foreach($registro as $clave){ echo "<div style='float: left;'>".$clave."  </td></tr>" ; } } # insertamos un salto de línea en la tabla HTML # establecemos el bucle de lectura del ARRAY # con los resultados de cada LINEA # y encerramos cada valor en etiquetas <td></td> # para que aparezcan en celdas distintas de la tabla foreach($registro2 as $clave2){ echo "<tr align=center height= 45px><td>"; echo "<div style='float: left;'>".$clave2."  </td></tr>" ; } } echo "</table></div>"; // Cerramos la conexión a la base // Creando los enlaces de paginación echo "<br><br><br><br><br><br><p class=fonty align='center'>"; if ($pg != 0) { $url = $pg - 1; echo "<a href='$PHP_SELF?pg=".$url."'>« Anterior</a> "; } else { echo " "; } for ($i = 0; $i <= $pages; $i++) { if ($i == $pg) { if ($i == "0") { echo "<b> 1 </b>"; } else { $i = $i+1; echo "<b> ".$i." </b>"; } } else { if ($i == "0") { echo "<a href=$PHP_SELF?pg=".$i.">1</a> "; } else { echo "<a href='$PHP_SELF?pg=".$i."'>"; $i = $i+1; echo $i."</a> "; } } } if ($pg < $pages) { $url = $pg + 1; echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente »</a>"; } else { echo " "; } echo "</p>"; ?>
pero no consigo incrustar en este el código de lista.phpgracias por la ayuda
|
|
« Última modificación: 26 Julio 2010, 05:57 am por soru13 »
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
$contar = "SELECT * FROM videos"; $pages = intval($total_records / $cantidad);
No puedes hacer eso, porque estarias seleccionando todos los campos que existen para luego contarlos, osea que irian texto, img, etc... Debes seleccionar mejor el campo id (Si lo tienes) que tiene el numero de registro... Hacer esto, crea un archivo PHP para solo maquetear el paginador, osea crearas un paginador(Sin imagenes tablas nada de eso) y cuando lo hagas se lo adaptas a tu source...
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
soru13
Desconectado
Mensajes: 246
|
ok lo intentaré
|
|
« Última modificación: 22 Julio 2010, 16:44 pm por soru13 »
|
En línea
|
|
|
|
soru13
Desconectado
Mensajes: 246
|
aver,ya conseguí juntar los dos códigos y me quedó esto: pero no funciona bien el paginador,ya que si le das a siguiente no cambia este es el code <? // Datos de conexión a la base $base="bd"; if (!isset($_GET['pg'])) //para el inicio $pg = 0; else $pg=$_GET['pg']; //cuando haces click sobre el siguiente link del paginador $cantidad=4; // cantidad de resultados por página $inicial = $pg * $cantidad; $pegar = "SELECT * FROM videos order by id desc LIMIT $inicial,$cantidad"; $pegar2 = "SELECT * FROM videos order by id desc LIMIT $inicial,$cantidad"; $contar = "SELECT * FROM videos"; $pages = intval($total_records / $cantidad); include ("config.php"); $sql = "select * from videos order by id desc limit 25"; //Instrucción a ejecutarse en la bbdd. //Ejecución de la instrucción //Recuperar los datos de un registro o hilera (row) y meterlo a un array $url = $row['id'] ?> </p> <div style="float: left;"> <?php echo "<table width='80%' border='0'>"; echo "<a href='videos/$url' style='border:0'>".$row['img']."</a> "; echo "<br />"; echo "<tr><td align='center'><a href='videos/$url'>".$row['nombre']."</a></td></tr>" ; echo "<tr><td align='center'>".$row['dur']."</td></tr>"; echo "</table>"; ?></div> <? } // Cerramos la conexión a la base // Creando los enlaces de paginación echo "<br><br><br><br><br><br><br><br><br><br><br><br><p class=fonty align='center'>"; if ($pg != 0) { $url = $pg - 1; echo "<a href='$PHP_SELF?pg=".$url."'>« Anterior</a> "; } else { echo " "; } for ($i = 0; $i <= $pages; $i++) { if ($i == $pg) { if ($i == "0") { echo "<b> 1 </b>"; } else { $i = $i+1; echo "<b> ".$i." </b>"; } } else { if ($i == "0") { echo "<a href=$PHP_SELF?pg=".$i.">1</a> "; } else { echo "<a href='$PHP_SELF?pg=".$i."'>"; $i = $i+1; echo $i."</a> "; } } } if ($pg < $pages) { $url = $pg + 1; echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente »</a>"; } else { echo " "; } echo "</p>"; ?> <div style="clear: both;">
porque no funciona? gracias
|
|
« Última modificación: 26 Julio 2010, 05:57 am por soru13 »
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Normal, porque creas el paginador pero no adapta la consulta sql con el paginador... Ej: $cantidad=4; // cantidad de resultados por página
Lo maximo pero si te fijas tienes 6 resultados, osea no usas el paginador junto a la consulta Maquetearlo de nuevo pero crea un campo que contenga 4 registro y muestre 2 máximo por pagina, cuando lo logres ya sabrás como combinar el paginador junto a la consulta...
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
|
|