elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ayuda paginar resultados
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda paginar resultados  (Leído 2,157 veces)
over crash

Desconectado Desconectado

Mensajes: 57



Ver Perfil
ayuda paginar resultados
« en: 17 Diciembre 2006, 17:59 »

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.

Código:

<?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 Desconectado

Mensajes: 57



Ver Perfil
Re: ayuda paginar resultados
« Respuesta #1 en: 18 Diciembre 2006, 17:59 »

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  :rolleyes:. A ver si asi alguien se anima y me hecha una manita y ve que es lo que  yo no veo. Muchas gracias

Código:

<?
// 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."'>&laquo; Anterior</a>&nbsp;";
} 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>&nbsp;";
}
}
}
if ($pg < $pages) {
$url = $pg + 1;
echo "<a href='$PHP_SELF?pg=".$url."'>Siguiente &raquo;</a>";
} else {
echo " ";
}
echo "</p>";
?>




En línea

Ser consciente de la propia ignorancia es un gran paso hacia el saber.
coolfrog


Desconectado Desconectado

Mensajes: 324


Ver Perfil WWW
Re: ayuda paginar resultados
« Respuesta #2 en: 19 Diciembre 2006, 07:58 »

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.
Código:
if (!isset($pg))
$pg = 0; // $pg es la pagina actual
deberia ser algo como esto:
Código:
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
Código:
$pg=(!isset($_GET['pg']))0:$_GET['pg'];

bueno ay te ves...
posteas si te resulta
En línea

chicuela66

Desconectado Desconectado

Mensajes: 79



Ver Perfil
Re: ayuda paginar resultados
« Respuesta #3 en: 19 Diciembre 2006, 09:49 »

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 Desconectado

Mensajes: 57



Ver Perfil
Re: ayuda paginar resultados
« Respuesta #4 en: 22 Diciembre 2006, 14:47 »

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.
DownRate

Desconectado Desconectado

Mensajes: 44



Ver Perfil
Re: ayuda paginar resultados
« Respuesta #5 en: 28 Diciembre 2006, 03:38 »

para paginar resultados yo utilizo la sig clase:

http://www.phpclasses.org/browse/package/2346.html

sencillo sin tanto quebradero de cabeza ;D

espero te sirva.

saludos..!
En línea

Revenge is a Dish Best Served Cold
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines