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:
</html>
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
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.
$squery = mysql_query($sql);
//Ejecución de la instrucción
while($row = mysql_fetch_array($squery)){{
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.
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";
$con=mysql_connect(localhost,rapmadri_general,181302);
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 FROM videos order by id desc LIMIT $inicial,$cantidad";
$pegar2 = "SELECT nombre FROM videos order by id desc LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());
$cad2 = mysql_db_query($base,$pegar2) 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);
$squery = mysql_query($pegar2);
while ($registro = mysql_fetch_row($cad)){
# 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>" ;
}
}
while ($registro2 = mysql_fetch_row($cad2)){
# 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
$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>";
?>
como puedo hacer eso? gracias a todos por la ayuda ;)
xD, esta facir man y usa un poco la lógica...
Bueno te explico lo que pasa.
Haces esto:
while ($registro = mysql_fetch_row($cad)){
# 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>" ;
}
}
while ($registro2 = mysql_fetch_row($cad2)){
# 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
$connect = mysql_connect('127.0.0.1','root', 'passs');
mysql_select_db('lol',$connect);
$sql = "Select id, nombre from lol";//Aqui lo que hago es seleccionar dos campos en vez de uno.
$result = mysql_query($sql,$connect);
while ($row = mysql_fetch_assoc($result)) {
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
$connect = mysql_connect('127.0.0.1','root', 'pass');
mysql_select_db('lol',$connect);
$sql = "Select id from lol";
$sql2 = "Select nombre from lol";
$result = mysql_query($sql,$connect);
$result2 = mysql_query($sql2,$connect);
while ($row = mysql_fetch_assoc($result)) {
echo $row['id'];
}
echo '<br>';
while ($row = mysql_fetch_assoc($result2)) {
echo $row['nombre'];
}
?>
Salida
123
jesusedwinjose
Saludos! ;D
~ 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.
$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']
?>
</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";
$con=mysql_connect(localhost,rapmadri_general,181302);
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 FROM videos order by id desc LIMIT $inicial,$cantidad";
$pegar2 = "SELECT nombre FROM videos order by id desc LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());
$cad2 = mysql_db_query($base,$pegar2) 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);
$squery = mysql_query($pegar2);
while ($registro = mysql_fetch_row($cad)){
# 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>" ;
}
}
while ($registro2 = mysql_fetch_row($cad2)){
# 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
$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>";
?>
pero no consigo incrustar en este el código de lista.php
gracias por la ayuda
$contar = "SELECT * FROM videos";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
$squery = mysql_query($pegar2);
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...
ok lo intentaré
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";
$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 * FROM videos order by id desc LIMIT $inicial,$cantidad";
$pegar2 = "SELECT * FROM videos order by id desc LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());
$cad2 = mysql_db_query($base,$pegar2) 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);
$squery = mysql_query($pegar2);
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']
?>
</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
$con=mysql_close($con);
// 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
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...
no consigo encontrar el fallooooo :huh:
no hay fallo, lo que pasa esque debes combinar el paginador con la consulta
ese es el problema que he probado ya de diferentes formas combinarlo y ninguna es la correcta... :-\
Busca un ejemplo y hazlo maqueteado porque si lo haces en el mismo source te confundiras...
CitarMaquetearlo 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...
a que te refieres a maqueteado? en diferentes archivos php cada código y luego los incluyo todos en 1 o como? gracias
edit: e probado a hacer cada código por separado en 1 archivo cada uno y tampoco funciona,alguien me puede ayudar por favor?
perdón por el flood pero nadie sabe arreglarlo? gracias
Prueba ahora...
<?
// 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 * FROM videos order by id desc LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());
$contar = "SELECT * FROM video order by id";
$contarok= mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok);
$pages = intval($total_records / $cantidad);
while($row = mysql_fetch_array($cad)){
//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
$con=mysql_close($con);
// 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;">
me da un error,ya lista los resultados máximos pero no funciona bien el paginador:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home2/rapmadri/public_html/tupixxx/lista2.php on line 28
la línea 28 es esta:
$total_records = mysql_num_rows($contarok);
gracias por la ayuda yoya
Reemplaza
$contarok= mysql_db_query($base,$contar);
Por
$contarok= mysql_query($contar);
sige dando error,ahora en la línea siguiente
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home2/rapmadri/public_html/tupixxx/lista2.php on line 28
linea 28
$total_records = mysql_num_rows($contarok);
Oye, pero aquí no podemos hacer tú trabajo, por lo menos sabes que es lo que estas haciendo o si interpretas el código?. Sería mejor que iniciar haciendo algo con tú propio código y avanzas poco a poco.
es lo que estuve haciendo,estuve haciendo el código,no desde 0 pero si metiendole cosas,lo que pasa que ya me supera y no se por que no funciona,solo busco la pequeña solución al paginador que ya casi está.
En realidad no lo haz resolvido porque haz usado otro source y si no sabes como funcionas ps siempre tendras problemas...
http://www.webexperto.com/articulos/art/74/paginacion-de-resultados-con-php/