Foros del Web » Programando para Internet » PHP »

Paginación php y mysql

Estas en el tema de Paginación php y mysql en el foro de PHP en Foros del Web. Hola, otro problema tengo este código : <?php //echo $valor . "<p>"; //inicializo el criterio y recibo cualquier cadena que se desee buscar $criterio = ...
  #1 (permalink)  
Antiguo 01/09/2005, 04:39
 
Fecha de Ingreso: julio-2005
Mensajes: 43
Antigüedad: 12 años, 4 meses
Puntos: 0
paginación en php

Hola, otro problema tengo este código :


<?php

//echo $valor . "<p>";
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "where activar=1";


//Limito la busqueda
$TAMANO_PAGINA = 4;

//examino la página a mostrar y el inicio del registro a mostrar
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;
}
echo "Valor de inico ".$inicio;

//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "select * from Prueba " . $criterio;
echo $ssql . "<p>";

$rs = mysql_query($ssql);
$num_total_registros = mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);

//pongo el número de registros total, el tamaño de página y la página que se muestra
echo "Número de registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>";
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";


//construyo la sentencia SQL
$ssql = "select * from Prueba " . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA;

echo $ssql . "<p>";

$rs = mysql_query($ssql);

//echo $rs . "<p>";


while( $fila = mysql_fetch_object($rs)){
?>
<table width="60%" border="1">
<tr>
<th width="25%" scope="col">


<p> <a href="masinformacion.php?id= <?=$fila->id?>">
<img src=<?=$fila-> foto?> width="106" height="127" border="0"></a></p></th>
<th width="75%" scope="col">
<p align="left">nombre : <?php
echo $fila-> nombre;
?> </p> <div align="left">
<p>tipo : <?php
echo $fila-> tipo;
?></p>
<p>metros : <?php
echo $fila-> metros;
?></p>
</div>
<p align="left">precio : <?php
echo $fila-> precio;
?></p></th>
</tr>
</table>
<? }





//cerramos el conjunto de resultados y la conexión con la base de datos
mysql_free_result($rs);
mysql_close();

echo "<p>";

//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i)
//si muestro el índice de la página actual, no coloco enlace
echo $pagina . " ";
else
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo "<a href='tabla2.php?pagina=" . $i . "'>". $i ."</a> ";
}
}




?>


Por más vueltas que le doy no le veo ningun error, pero cuando voy a seleccionar otra pagina que no sea la primera, me da un error al conectar con la base de datos, las consultas la he comprobado y funcionan fuera de esto.
¿Por qué puede ser?
  #2 (permalink)  
Antiguo 01/09/2005, 04:56
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
¿Que error te da? Copia el error que te sale.
  #3 (permalink)  
Antiguo 01/09/2005, 05:08
 
Fecha de Ingreso: julio-2005
Mensajes: 43
Antigüedad: 12 años, 4 meses
Puntos: 0
Esto es lo que me sale, vamos que no recoge nada en las consultas.

Valor de inico 4select * from Prueba where activar=1


Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) in /var/www/vhost/insytel.com/home/html/tabla2.php on line 36

Warning: mysql_query(): A link to the server could not be established in /var/www/vhost/insytel.com/home/html/tabla2.php on line 36

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/vhost/insytel.com/home/html/tabla2.php on line 37
Número de registros encontrados:
Se muestran páginas de 4 registros cada una
Mostrando la página 2 de 0

select * from Prueba where activar=1 limit 4,4


Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) in /var/www/vhost/insytel.com/home/html/tabla2.php on line 52

Warning: mysql_query(): A link to the server could not be established in /var/www/vhost/insytel.com/home/html/tabla2.php on line 52

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/vhost/insytel.com/home/html/tabla2.php on line 57

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /var/www/vhost/insytel.com/home/html/tabla2.php on line 89

Warning: mysql_close(): no MySQL-Link resource supplied in /var/www/vhost/insytel.com/home/html/tabla2.php on line 90
  #4 (permalink)  
Antiguo 01/09/2005, 05:23
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Te has asegurado de que has hecho bien la conexion a la base de datos????
Dime donde haces la conexion ¿en la misma pagina?¿En otra?
  #5 (permalink)  
Antiguo 05/09/2005, 04:21
 
Fecha de Ingreso: julio-2005
Mensajes: 43
Antigüedad: 12 años, 4 meses
Puntos: 0
Paginación php y mysql

Hola a todos, vuelvo a plantear de nuevo mi problema con la paginación porque no logro saber que es lo que pasa. Haber si podeis ayudarme.

Tengo lo siguiente:


Código PHP:
$criterio = "where activar=1";


//Limito la busqueda
$TAMANO_PAGINA = 4;

//examino la página a mostrar y el inicio del registro a mostrar
$pagina = $_GET["pagina"];
if (!$pagina) {
        $inicio = 0;
        $pagina=1;
}
else {
    $inicio = ($pagina - 1) * $TAMANO_PAGINA;
}


//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "select * from Prueba " . $criterio;


$rs = mysql_query($ssql);
$num_total_registros = mysql_num_rows($rs);

//calculo el total de páginas
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);

//pongo el número de registros total, el tamaño de página y la página que se muestra
echo "Número de registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>";
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";


//construyo la sentencia SQL
$ssql = "select * from Prueba " . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA;


$rs = mysql_query($ssql);


    while( $fila = mysql_fetch_object($rs)){ 
?> 
     lo que muestro de la base de datos
<? 

 
//cerramos el conjunto de resultados y la conexión con la base de datos
mysql_free_result($rs);
mysql_close();


//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas 1){
    for (
$i=1;$i<=$total_paginas;$i++){
        if (
$pagina == $i
            
//si muestro el índice de la página actual, no coloco enlace
            
echo $pagina " ";
        else
            
//si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
            
echo "<a href='tabla2.php?pagina=" $i "'>"$i ."</a> ";
    }
}
?>

Lo que ocurre es que cuando hace voy a mirar otra pagina es decir uno de los enlaces, no conecta con la bases de datos. Alguien sabe lo que ocurre?
  #6 (permalink)  
Antiguo 05/09/2005, 04:31
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Prueba a poner los valores del limit al reves, es decir:

Código PHP:
$ssql "select * from Prueba " $criterio " limit " $TAMANO_PAGINA "," $inicio
A mi no me funciona si no lo pongo asi.
  #7 (permalink)  
Antiguo 05/09/2005, 04:34
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Me acabo de dar cuenta de que eres tu, ratxel y que ya te dije que hicieras eso, asi que supongo que no te valdrá mi respuesta, lo siento, lo seguire mirando.

Es que cuando yo hice paginacion no me funcionaba si no ponia el limit asi, por eso cada vez que lo veo de la otra forma digo lo mismo, y no habia visto que eras tu.
  #8 (permalink)  
Antiguo 05/09/2005, 04:40
 
Fecha de Ingreso: julio-2005
Mensajes: 43
Antigüedad: 12 años, 4 meses
Puntos: 0
No importa mira haber si ves otra cosa, por que eso no me funciona
  #9 (permalink)  
Antiguo 05/09/2005, 04:48
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
quita el mysql_close()
  #10 (permalink)  
Antiguo 05/09/2005, 05:05
 
Fecha de Ingreso: julio-2005
Mensajes: 43
Antigüedad: 12 años, 4 meses
Puntos: 0
tambien probe con eso, y nada que no quiere funcionar
  #11 (permalink)  
Antiguo 05/09/2005, 05:08
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 12 años, 4 meses
Puntos: 1
Buenas,

No me he parado a mirar tu codigo, pero si lo que necesitas es realizar la paginación de una web, tal vez el contenido de este post te puede echar una mano.

http://www.forosdelweb.com/showthrea...ght=paginacion

Un saludo.
__________________
www.pensandoenred.com
  #12 (permalink)  
Antiguo 05/09/2005, 05:28
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 12 años, 3 meses
Puntos: 0
Donde haces la conexion con la base de datos, en ese archivo o en otro. Si es en otro archivo, haces un include de ese archivo?
Copia el fallo que te da, a ver que linea es y que pone??
  #13 (permalink)  
Antiguo 05/09/2005, 06:22
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Temas únidos.

ratxel, por favor evita repetir temas, sigue tus consultas originales, procura aportar nuevos datos. Al final se estaba pidiendo lo que ya habías mencionado en tu otro post.

El error es de conexión. En el código que muestras no se ve en qué momento ni cómo la realizas; habrá que asegurarse primero la conexión sea satisfactoria: www.php.net/mysql_connect

Igual recomendar el uso de Paginator . Un saludo .
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 10:38.