Autor
|
Tema: ayuda paginar resultados (Leído 3,316 veces)
|
over crash
Desconectado
Mensajes: 57
|
Hola a todos estoy intentando paginar los resultados de una tabla mysql pero no tengo narices. Alguien podria hecharme una mano dejo aqui el codigo php de obtencion de los resultados. Muchas gracias anticipadas. <?php include("conex.php"); $link=Conectarse();
if (($Opcion == "0") and ($Tipo == "0") and ($Zona == "0") and ($Precio == "0")) {
$result= mysql_query("SELECT * FROM datos ",$link); }
elseif(($Opcion =="0") and ($Tipo == "0") and ($Zona == "0")) { $result = mysql_query("SELECT * FROM datos WHERE precio < '$Precio'", $link); }
elseif(($Opcion == "0") and ($Tipo == "0") and ($Precio == "0")) { $result = mysql_query("SELECT * FROM datos WHERE zona = '$Zona'", $link); } elseif(($Opcion == "0") and ($Tipo == "0")) { $result = mysql_query("SELECT * FROM datos WHERE zona = '$Zona' AND precio < $Precio", $link); } elseif(($Opcion == "0") and ($Zona == "0") and ($Precio == "0")) { $result = mysql_query("SELECT * FROM datos WHERE tipo = '$Tipo'", $link); } elseif(($Opcion == "0") and ($Zona == "0")) { $result = mysql_query("SELECT * FROM datos WHERE tipo = '$Tipo' AND precio < $Precio", $link); } elseif(($Opcion == "0") and ($Precio == "0")) { $result = mysql_query("SELECT * FROM datos WHERE tipo = '$Tipo' AND zona = '$Zona'", $link); } elseif(($Tipo == "0") and ($Zona == "0") and ($Precio == "0")) { $result = mysql_query("SELECT * FROM datos WHERE opcion = '$Opcion'", $link); } elseif(($Tipo == "0") and ($Zona == "0")) { $result = mysql_query("SELECT * FRoM datos WHERE opcion = '$Opcion' AND precio < '$Precio'", $link); } elseif(($Tipo == "0") and ($Precio == "0")) { $result = mysql_query("SELECT * FROM datos WHERE opcion = '$Opcion' AND zona = '$Zona'", $link); } elseif($Tipo == "0") { $result = mysql_query("SELECT * FROM datos WHERE opcion = '$Opcion' AND zona = '$Zona' AND precio < $Precio", $link); } elseif(($Zona == "0") and ($Precio == "0")) { $result = mysql_query("SELECT * FROM datos WHERE opcion = '$Opcion' AND tipo = '$Tipo'", $link); } elseif($Zona == "0") { $result = mysql_query("SELECT * FROM datos WHERE opcion = '$Opcion' AND tipo = '$Tipo' AND precio < $Precio", $link); } elseif($Precio == "0") { $result = mysql_query("SELECT * FROM datos WHERE opcion = '$Opcion' AND tipo = '$Tipo' AND zona = '$Zona'", $link); }
else { $result = mysql_query("SELECT * FROM datos WHERE opcion = '$Opcion' AND tipo = '$Tipo' AND zona = '$Zona' AND precio < $Precio", $link); }
$total = mysql_result($result,0);
/**********************************************/
/*obtener el numero de filas de la tabla */
$num_rows = mysql_num_rows($result);
echo("numero de resultados: "); echo($num_rows);
/*********************************************/
/********************************************* variables numero de paginas*/
$reg_paginas = 20; $num_paginas = ceil($num_rows / $reg_paginas);
/*********************************************/
echo("numero de paginas"); echo($num_paginas); /*********************************************/
if($num_rows > 0)
{
# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML)
echo "<table align=center bgcolor=#FCF1C7 bordercolor=black border=2 >";
# establecemos un bucle que recoge en un array # cada una de las LINEAS DEL RESULTADO DE LA CONSULTA # utilizamos en esta ocasión «mysql_fetch_row» # en vez de «mysql_fetch_array» para EVITAR DUPLICADOS # recuerda que esta ultima función devuelve un array escalar # y otro asociativo con los resultados
while ($registro = mysql_fetch_row($result)){
# 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 "<td>",$clave,"</td>";
} }
echo "</table>";
}
else { echo("NO HAY RESULTADOS");
}
mysql_close();
?>
|
|
|
En línea
|
Ser consciente de la propia ignorancia es un gran paso hacia el saber.
|
|
|
over crash
Desconectado
Mensajes: 57
|
Veo que no hay demasiada ayuda en este tema y yo me estoy volviendo majara. Con este codigo he conseguido paginar todos los resultados sin problema pero si pones alguna opcion solo consigo que me salga la primera pagina y si le das a la siguiente pagina aunque tuvieran que salir mas resultados no salen y ya es que tengo desgastadas las neuronas . A ver si asi alguien se anima y me hecha una manita y ve que es lo que yo no veo. Muchas gracias <? // Datos de conexión a la base $base="profidatos"; $con=mysql_connect(localhost,user,password); mysql_select_db($base,$con);
if (!isset($pg)) $pg = 0; // $pg es la pagina actual $cantidad=20; // cantidad de resultados por página $inicial = $pg * $cantidad;
$pegar = "SELECT * FROM datos LIMIT $inicial,$cantidad"; $cad = mysql_db_query($base,$pegar) or die (mysql_error());
$contar = "SELECT * FROM datos"; $contarok= mysql_db_query($base,$contar); $total_records = mysql_num_rows($contarok); $pages = intval($total_records / $cantidad);
echo "<table align=center bgcolor=#FCF1C7 bordercolor=black border=2 >";
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 "<td>",$clave,"</td>";
} }
echo "</table>";
// Cerramos la conexión a la base $con=mysql_close($con);
// Creando los enlaces de paginación echo "<p class=fonty>"; 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>"; ?>
|
|
|
En línea
|
Ser consciente de la propia ignorancia es un gran paso hacia el saber.
|
|
|
coolfrog
|
el problema es que no asignas un valor a la variable pg, despues de que si existe la misma, ademas deberias usar el GET o POST y no solo preguntar con el nombre de la variable "pg" ya que esto varia en las versiones de php y algunas no te van a reconocer la variable. if (!isset($pg)) $pg = 0; // $pg es la pagina actual
deberia ser algo como esto: if (!isset($_GET['pg'])) //para el inicio $pg = 0; else $pg=$_GET['pg']; //cuando haces click sobre el siguiente link del paginador
o de una forma mas resumida $pg=(!isset($_GET['pg']))0:$_GET['pg'];
bueno ay te ves... posteas si te resulta
|
|
|
En línea
|
|
|
|
chicuela66
Desconectado
Mensajes: 79
|
Tengo echo la paginación aqui te paso el codigo si te va bin pos bien sino pos lo siento:
//paginar:
if (!isset($pg)) { $pg = 1; // $pg es la pagina actual $pag=0; }
$cantidad=4; // cantidad de resultados por página if ($pg>1) { $pag=$pag+$pg-1; }
$inicial = $pag * $cantidad;
$pegar = "select Titulo,Marca,Foto,Descripcion,Precio,Aviso,mostrar,grupo from articulos where mostrar='on' and grupo='$tip' LIMIT $inicial,$cantidad";
$cad = mysql_query($pegar) or die (mysql_error());
$contar = "SELECT * FROM articulos where mostrar='on' and grupo='$tip' ORDER BY idArticulo "; $contarok= mysql_query($contar); $total_records = mysql_num_rows($contarok); $pages = $total_records / $cantidad;
// Imprimiendo los resultados
|
|
|
En línea
|
|
|
|
over crash
Desconectado
Mensajes: 57
|
Siento no haber respondido antes pero me he ido un par de días a lisboa a ver las lucecitas de navidad que a la novia se le habia antojado, por cierto es una pasada el pedazo de arbolote de naviadad que han puesto los lisboetas. Muchas gracias a los dos pero que va sigue pasandome lo mismo si no pongo opciones y quiero leer todos los resultados no tengo problema y se va paginando perfectamente pero si quiero ver por ejemplo solo los de un tipo pues me sale la primera pagina con los resultados correctos pero si le doy a la siguiente pagina no me sale ningun otro resultado. Luego seguire dandole vueltas, ahora que estoy mas despejado. Muchisimas gracias.
|
|
|
En línea
|
Ser consciente de la propia ignorancia es un gran paso hacia el saber.
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Paginar un pdf y alinear las columnas de un datagridview
.NET (C#, VB.NET, ASP)
|
joalbela
|
2
|
5,530
|
17 Marzo 2011, 04:16 am
por Novlucker
|
|
|
paginar resultados de un while
« 1 2 »
PHP
|
RedZer
|
15
|
8,185
|
22 Junio 2011, 23:48 pm
por RedZer
|
|
|
[Ayuda] Paginar resultados dentro de un MSFlexgrid o cualquier otra datagrid VB
Programación Visual Basic
|
Graphixx
|
1
|
3,129
|
13 Julio 2012, 23:38 pm
por seba123neo
|
|
|
ayuda con problema al usar IN causa desagrupacion de los resultados
Bases de Datos
|
trachtenberg
|
1
|
1,970
|
26 Noviembre 2012, 03:11 am
por trachtenberg
|
|
|
[Sencillo ejemplo] Paginar resultados con PHP y MySQL
PHP
|
Graphixx
|
4
|
19,128
|
8 Julio 2014, 16:51 pm
por Gh057
|
|