Foros del Web » Programando para Internet » PHP »

Ayuda con paginacion de resultados mysql

Estas en el tema de Ayuda con paginacion de resultados mysql en el foro de PHP en Foros del Web. Hola amigos, porfabor necesito ayuda sobre este codigo que no me hace bien la paginacion, llevo mucho tiempo intentando arreglarlo pero NADA.. Os pongo aqui ...
  #1 (permalink)  
Antiguo 09/10/2010, 08:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 75
Antigüedad: 13 años, 6 meses
Puntos: 0
Ayuda con paginacion de resultados mysql

Hola amigos, porfabor necesito ayuda sobre este codigo que no me hace bien la paginacion, llevo mucho tiempo intentando arreglarlo pero NADA..

Os pongo aqui el codigo aver si alguien me puede ayudar, os lo agredezco mucho
Gracias

<?php

require 'config.php' ;

$maximo_consulta = 4;
$iniciar_consulta = 0;
if (isset($_GET['iniciar_consulta'])) {
$iniciar_consulta = $_GET['iniciar_consulta'];
}
$empezar_fila = $iniciar_consulta * $maximo_consulta;
mysql_select_db($database, $conectar);
$consulta1 = "SELECT foto,titulo,direction,categorie,telecharger,share FROM album ORDER BY id desc";

//creamos las variables básicas del paginador
$maximo_resultados = 4;
$numero_pagina = 0;
//si existe un valor en el url lo guardamos en la variable $numero_pagina

if (isset($_GET['numero_pagina'])) {
$numero_pagina = $_GET['numero_pagina'];
}
//guardamos los valores de las variables en una sola
//$mostrar_resultados = $iniciar_consulta * $maximo_consulta;
$mostrar_resultados = $numero_pagina * $maximo_resultados;
// conectamos a la BD
mysql_select_db($database, $conectar);

//añadimos las variables de URL necesarias
$query_limit_resultados = sprintf("%s LIMIT %d, %d", $consulta1, $mostrar_resultados, $maximo_resultados);
$rsTablaPersonalizada = mysql_query($query_limit_resultados, $conectar) or die(mysql_error());
$row_rsTablaPersonalizada = mysql_fetch_assoc($rsTablaPersonalizada);
//Si la consulta trae resultados lo almacenamos en la variable $total_resultados
if (isset($_GET['total_resultados'])) {
$total_resultados = $_GET['total_resultados'];
} else {
$all_resultados = mysql_query($consulta1);
$total_resultados = mysql_num_rows($all_resultados);
}
//si algún valor esta en fracción lo redondeamos al número mayor y restamos 1 para la pag. de inicio
$totalPaginas_resultados = ceil($total_resultados/$maximo_resultados)-1;
// almacenamos los resultados como strings
$string_resultados = "";
// creamos los parámetros de la URL: numero_pagina y total_resultados
if (!empty($_SERVER['QUERY_STRING'])) {
$parametros = explode("&", $_SERVER['QUERY_STRING']);
$newparametros = array();
foreach ($parametros as $param) {
if (stristr($param, "numero_pagina") == false &&
stristr($param, "total_resultados") == false) {
array_push($newparametros, $param);
}
}
if (count($newparametros) != 0) {
$string_resultados = "&" . htmlentities(implode("&", $newparametros));
}
}
$string_resultados = sprintf("&total_resultados=%d%s", $total_resultados, $string_resultados);

?>
<?php


// Fila 1
$limite_fila1 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila, $maximo_consulta);
$resultado1 = mysql_query($limite_fila1, $conectar) or die(mysql_error());
$fila1 = mysql_fetch_assoc($resultado1);

$limite_fila2 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila, $maximo_consulta);
$resultado2 = mysql_query($limite_fila2, $conectar) or die(mysql_error());
$fila2 = mysql_fetch_assoc($resultado2);

$limite_fila4 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila, $maximo_consulta);
$resultado4 = mysql_query($limite_fila4, $conectar) or die(mysql_error());
$fila4 = mysql_fetch_assoc($resultado4);

// Fila 2
$limite_fila5 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+4, $maximo_consulta);
$resultado5 = mysql_query($limite_fila5, $conectar) or die(mysql_error());
$fila5 = mysql_fetch_assoc($resultado5);

$limite_fila6 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+4, $maximo_consulta);
$resultado6 = mysql_query($limite_fila6, $conectar) or die(mysql_error());
$fila6 = mysql_fetch_assoc($resultado6);

$limite_fila7 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+4, $maximo_consulta);
$resultado7 = mysql_query($limite_fila7, $conectar) or die(mysql_error());
$fila7 = mysql_fetch_assoc($resultado7);

// Fila 3
$limite_fila8 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+8, $maximo_consulta);
$resultado8 = mysql_query($limite_fila8, $conectar) or die(mysql_error());
$fila8 = mysql_fetch_assoc($resultado8);

$limite_fila9 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+8, $maximo_consulta);
$resultado9 = mysql_query($limite_fila9, $conectar) or die(mysql_error());
$fila9 = mysql_fetch_assoc($resultado9);

$limite_fila10 = sprintf("%s LIMIT %d, %d", $consulta1, $empezar_fila+8, $maximo_consulta);
$resultado10 = mysql_query($limite_fila10, $conectar) or die(mysql_error());
$fila10 = mysql_fetch_assoc($resultado10);

?>



<TABLE border="0">

<!-- 1ra FILA -->
<tr>
<?php do { ?>
<td bgcolor="#424242" width="150"><a href="javascript:popup('<?php echo $fila1['direction']; ?>')"><img border="0" src="<?php echo $fila1['foto']; ?>" width="152" height="120"></a></td>
<?php } while ($fila1 = mysql_fetch_assoc($resultado1)); ?>
</tr>

<tr>
<?php do { ?>
<td width="150" style="border-left:1px solid #424242; border-right:1px solid #424242;" valign="top" align="center"><font face="Trebuchet MS" size="2" color="#6e6eFF"><?php echo $fila2['titulo']; ?></font></td>
<?php } while ($fila2 = mysql_fetch_assoc($resultado2)); ?>
</tr>

<tr>
<?php do { ?>
<td width="150" align="center" style="border-left:1px solid #424242; border-right:1px solid #424242;"><a target="new" href="<?php echo $fila4['telecharger']; ?>"><font face="Trebuchet MS" color="#D1F1D2" size="2">TELECHARGER EN MP3</font></a></td>
<?php } while ($fila4 = mysql_fetch_assoc($resultado4)); ?>
</tr>

<tr><td> &nbsp; </td></tr>

<!-- 2na FILA -->
<tr>
<?php do { ?>
<td width="150" bgcolor="#424242"><a href="javascript:popup('<?php echo $fila5['direction']; ?>')"><img border="0" src="<?php echo $fila5['foto']; ?>" width="152" height="120"></a></td>
<?php } while ($fila5 = mysql_fetch_assoc($resultado5)); ?>
</tr>

<tr>
<?php do { ?>
<td width="150" style="border-left:1px solid #424242; border-right:1px solid #424242;" valign="top" align="center"><font face="Trebuchet MS" size="2" color="#6e6eFF"><?php echo $fila6['titulo']; ?></font></td>
<?php } while ($fila6 = mysql_fetch_assoc($resultado6)); ?>
</tr>

<tr>
<?php do { ?>
<td width="150" align="center" style="border-left:1px solid #424242; border-right:1px solid #424242;"><a target="new" href="<?php echo $fila7['telecharger']; ?>"><font face="Trebuchet MS" color="#D1F1D2" size="2">TELECHARGER EN MP3</font></a></td>
<?php } while ($fila7 = mysql_fetch_assoc($resultado7)); ?>
</tr>

<tr><td> &nbsp; </td></tr>

<!-- 3ra FILA -->
<tr>
<?php do { ?>
<td width="150" bgcolor="#424242"><a href="javascript:popup('<?php echo $fila8['direction']; ?>')"><img border="0" src="<?php echo $fila8['foto']; ?>" width="152" height="120"></a></td>
<?php } while ($fila8 = mysql_fetch_assoc($resultado8)); ?>
</tr>

<tr>
<?php do { ?>
<td width="150" style="border-left:1px solid #424242; border-right:1px solid #424242;" valign="top" align="center"><font face="Trebuchet MS" size="2" color="#6e6eFF"><?php echo $fila9['titulo']; ?></font></td>
<?php } while ($fila9 = mysql_fetch_assoc($resultado9)); ?>
</tr>

<tr>
<?php do { ?>
<td width="150" align="center" style="border-left:1px solid #424242; border-right:1px solid #424242;"><a target="new" href="<?php echo $fila10['telecharger']; ?>"><font face="Trebuchet MS" color="#D1F1D2" size="2">TELECHARGER EN MP3</font></a></td>
<?php } while ($fila10 = mysql_fetch_assoc($resultado10)); ?>
</tr>

<tr><td> &nbsp; </td></tr>


</TABLE>
<?php

while ($row_rsTablaPersonalizada = mysql_fetch_assoc($rsTablaPersonalizada));
echo "</table>" ;
?>
<table border="1" align="left">
<tr>
<td align="left">
<?php
//Creamos la Barra de Navegación
//utilizamos la función max para motrar los 50 valores anteriores al valor máximo
$pagNum_tmp = max(0, $numero_pagina-50);
for ($pagNum_i=$pagNum_tmp+1;$pagNum_i<=$numero_pagina ;$pagNum_i++) {
//páginas previas
?>
<a href="<?php printf ("%s?numero_pagina=%d%s", $HTTP_SERVER_VARS["PHP_SELF"], $pagNum_i-1, $string_resultados); ?>"><?php echo $pagNum_i; ?></a>
<?php
}
?>
</td>
<td><strong><?php
// página actual
echo $numero_pagina+1; ?></strong></td>
<td><?php
$pagNum_tmp = min($numero_pagina+1+50, $totalPaginas_resultados+1);
for ($pagNum_i=$numero_pagina+2;$pagNum_i<=$pagNum_tmp ;$pagNum_i++) {
// páginas siguientes
?>
<a href="<?php printf ("%s?numero_pagina=%d%s", $HTTP_SERVER_VARS["PHP_SELF"], $pagNum_i-1, $string_resultados); ?>"><?php echo $pagNum_i; ?></a>
<?php
}
?>
</td>
</tr>
</table>
<?php
//liberamos memoria
mysql_free_result($rsTablaPersonalizada);
?>
  #2 (permalink)  
Antiguo 09/10/2010, 16:09
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Ayuda con paginacion de resultados mysql

Hola
se escribe por favor
en cuanto a lo que necesitas, que no hace bien?
todo o solo en algún momento falla la paginación?
ha, y tienes script de la bd???
mientras, revisa esto
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 09/10/2010, 16:13
 
Fecha de Ingreso: septiembre-2010
Mensajes: 75
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Ayuda con paginacion de resultados mysql

Cita:
Iniciado por mortiprogramador Ver Mensaje
Hola
se escribe por favor
en cuanto a lo que necesitas, que no hace bien?
todo o solo en algún momento falla la paginación?
ha, y tienes script de la bd???
mientras, revisa [URL="http://www.desarrolloweb.com/articulos/1035.php"]esto
[/URL]saludos
Hola, gracias por tu respuesta
Todo lo muestra bien y no da ningun error de mysql, el unico que muestra los 12 resultados que le digo en el kodigo pero al pulsar el numero 2 o 3 o el k sea se kedan los mismos resultados, no se pasa a la siguiente pagina..
Muchas gracias, espero aver esplicado bien el problema
  #4 (permalink)  
Antiguo 09/10/2010, 16:39
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Ayuda con paginacion de resultados mysql

Cita:
Iniciado por web33 Ver Mensaje
Hola, gracias por tu respuesta
Todo lo muestra bien y no da ningun error de mysql, el unico que muestra los 12 resultados que le digo en el kodigo pero al pulsar el numero 2 o 3 o el k sea se kedan los mismos resultados, no se pasa a la siguiente pagina..
Muchas gracias, espero aver esplicado bien el problema
de nada
bueno, entonces eso quiere decir que la operación
del nuevo limit no se está realizando,
revisa los valores que llegan de get
y las asignaciones de los nuevos valores
de las variables del limit, por allí esta el inconveniente
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 09/10/2010, 16:58
 
Fecha de Ingreso: septiembre-2010
Mensajes: 75
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Ayuda con paginacion de resultados mysql

Cita:
Iniciado por mortiprogramador Ver Mensaje
de nada
bueno, entonces eso quiere decir que la operación
del nuevo limit no se está realizando,
revisa los valores que llegan de get
y las asignaciones de los nuevos valores
de las variables del limit, por allí esta el inconveniente
saludos
Te importaría ayudarme a mirarlo?? por favor, yo no veo nada...
  #6 (permalink)  
Antiguo 09/10/2010, 17:01
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Ayuda con paginacion de resultados mysql

Cita:
Iniciado por web33 Ver Mensaje
Te importaría ayudarme a mirarlo?? por favor, yo no veo nada...
pues claro, siempre y cuando publiques el script de la bd
para tener la misma bd que tu tienes
ha, y lo que tiene config.php
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 09/10/2010, 17:08
 
Fecha de Ingreso: septiembre-2010
Mensajes: 75
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Ayuda con paginacion de resultados mysql

Gracias mortiprogramador

La base de datos se llama users.
El codigo de la tabla album:

-- phpMyAdmin SQL Dump
-- version 2.10.2
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 10-10-2010 a las 01:06:26
-- Versión del servidor: 5.0.45
-- Versión de PHP: 5.2.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de datos: `users`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `album`
--

CREATE TABLE `album` (
`foto` text NOT NULL,
`titulo` text NOT NULL,
`direction` text NOT NULL,
`id` int(5) NOT NULL auto_increment,
`categorie` text NOT NULL,
`telecharger` varchar(500) NOT NULL,
`share` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=110 ;

--
-- Volcar la base de datos para la tabla `album`
--

INSERT INTO `album` VALUES ('SALAMAAM', 'mluih nijh', 'asdads', 96, 'asdafs', '', '0000-00-00');
INSERT INTO `album` VALUES ('dddd', 'aaaaa', 'vvvv', 97, 'Rif Musique', 'vbbbb', '0000-00-00');
INSERT INTO `album` VALUES ('ayyawen.jpg', 'adsadasd', 'adasdasda', 95, 'Rif Musique', 'adsadas', '0000-00-00');
INSERT INTO `album` VALUES ('logo.bmp', 'ba3ba33', 'sava', 98, 'DJ & Remix Musique', 'htttp', '23/12/2010');
INSERT INTO `album` VALUES ('logo.bmp', 'Morad Salam 2010 vol3', 'ssssssssss', 99, 'Rif Musique', 'adasdasdasdas', '24/09/2010');
INSERT INTO `album` VALUES ('ayyawen.jpg', 'Ayyawen 2011', 'fff', 100, 'Rif Musique', 'SDSS', '23/02/2011');
INSERT INTO `album` VALUES ('hamid_oussama_sabrina_2010.jpg', 'Hamid Oussama & Sabrina 2010', 'adasd', 101, 'Rif Musique', 'sssssssssss01', '01/01/2010');
INSERT INTO `album` VALUES ('ayyawen.jpg', 'Ayyawen 2012', 'asdas.html', 102, 'Anacheed Islamiya', 'httpppp', 'ayya.php');
INSERT INTO `album` VALUES ('hamid_oussama_sabrina_2010.jpg', 'Hamiiiid Oussa pazt', 'adfasdas', 103, 'Rif Musique', 'adfasdasdsa', 'fdasdasdas');
INSERT INTO `album` VALUES ('ayyawen.jpg', 'Ayyawen 2015 ', 'adasdasdas', 104, 'Rif Musique', 'ba3ba3d azoubidaa.html', 'hahagsgsg.php');
INSERT INTO `album` VALUES ('ayyawen.jpg', 'مراد سلام 2011', 'asfadasas', 105, 'Rif Musique', 'asdadsaadsd', 'www.google.com');
INSERT INTO `album` VALUES ('hamid_oussama_sabrina_2010.jpg', 'Tariq Amine 2010', 'http://rifaudio.com/dasd.html', 106, 'Rif Musique', 'http://google.com', 'http://share.com');
INSERT INTO `album` VALUES ('ayyawen.jpg', 'Abdou ben Tayeb & Samira 010', 'http://rifaudio.com/dasd.html', 107, 'Rif Musique', 'http://google.com', 'http://facebook.com');
INSERT INTO `album` VALUES ('hamid_oussama_sabrina_2010.bmp', 'Hamid Oussama & Sabrina 2010', 'http://rifaudio.com/dasd.html', 108, 'Rif Musique', 'http://google.com', 'http://facebook.com');
INSERT INTO `album` VALUES ('ayyawen.bmp', 'Ayyawen 2011', 'asasd', 109, 'Rif Musique', 'adasd', 'adasdaaa');




Y config.php:

unset($config) ;
$config[1] = 'localhost' ; # Puede ser "localhost" aunque también una URL o una IP
$config[2] = 'root' ; # Usuario de la base de datos
$config[3] = '1234' ; # Contraseña de la base de datos
$config[4] = 'users' ; # Nombre de la base de datos

$conectar = @mysql_connect($config[1],$config[2],$config[3]) or exit('Datos de conexión incorrectos.') ;
mysql_select_db($config[4],$conectar) or exit('No existe la base de datos.') ;
?>

Muchas gracias de nuevo.
  #8 (permalink)  
Antiguo 09/10/2010, 17:23
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Ayuda con paginacion de resultados mysql

Hola
bueno, pues no entiendo bien lo que quieres lograr
pues además del limit inicial
$query_limit_resultados
tienes más consultas como por ej
$limite_fila2 o $limite_fila5 que hacen lo mismo
pero con diferentes rangos, con que fin???
no sería mejor solo usar la inicial???
ahora, los valores de paginación llegan bien
pero el problema son esas consultas internas ($limite_fila2 o $limite_fila5 por ej)
que siempre hacen la misma consulta bajo los MISMOS limites,
estos no cambian como si pasa con $query_limit,
así que te sugiero que mejores el código y lo
hagas con calma, pues si la idea es ver 12 registros por página,
eso es lograble tan solo usando $query_limit_resultados, sin
necesidad de hacer más
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 09/10/2010, 17:29
 
Fecha de Ingreso: septiembre-2010
Mensajes: 75
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Ayuda con paginacion de resultados mysql

Cita:
Iniciado por mortiprogramador Ver Mensaje
Hola
bueno, pues no entiendo bien lo que quieres lograr
pues además del limit inicial
$query_limit_resultados
tienes más consultas como por ej
$limite_fila2 o $limite_fila5 que hacen lo mismo
pero con diferentes rangos, con que fin???
no sería mejor solo usar la inicial???
ahora, los valores de paginación llegan bien
pero el problema son esas consultas internas ($limite_fila2 o $limite_fila5 por ej)
que siempre hacen la misma consulta bajo los MISMOS limites,
estos no cambian como si pasa con $query_limit,
así que te sugiero que mejores el código y lo
hagas con calma, pues si la idea es ver 12 registros por página,
eso es lograble tan solo usando $query_limit_resultados, sin
necesidad de hacer más
saludos
Hola, gracias por tu respuesta,
Lo de limit fila es por cada fila, en la fila 1 por ejemplo se muestra la foto, en la fila 2 el titulo de la foto y fila 3 otra cosa... osea k estas filas mustran diferentes campos d la tabla, kon tan solo una fila no puedo

Lo unico que le falta a este codigo es sumar 12 registros al siguiente numero pero nose como hacerlo. No ves alli como puedo hacer esto??
Gracias de nuevo y lo siento si te molesto
  #10 (permalink)  
Antiguo 09/10/2010, 19:23
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Ayuda con paginacion de resultados mysql

Cita:
Iniciado por web33 Ver Mensaje
Hola, gracias por tu respuesta,
Lo de limit fila es por cada fila, en la fila 1 por ejemplo se muestra la foto, en la fila 2 el titulo de la foto y fila 3 otra cosa... osea k estas filas mustran diferentes campos d la tabla, kon tan solo una fila no puedo

Lo unico que le falta a este codigo es sumar 12 registros al siguiente numero pero nose como hacerlo. No ves alli como puedo hacer esto??
Gracias de nuevo y lo siento si te molesto
por nada
pues te digo que se puede lograr, tu problema es de conceptos,
revisaste el link que te pase??
ahora, como yo lo haría es usando un solo while (o un for)
que recorra el query inicial
algo así

Ejemplo

Código PHP:
Ver original
  1. $consultanew = "SELECT foto,titulo,direction,categorie,telecharger,share FROM album ORDER BY id desc LIMIT $pos,$limit";
  2. $rs = mysql_query($consultanew);
  3.  
  4. $i=0;
  5. do{
  6.     $ret[$i]= array($filanew['foto'],$filanew['titulo'],$filanew['direction'],$filanew['categorie'],$filanew['telecharger'],$filanew['share']);
  7. $i++;
  8. }
  9. while( $filanew = mysql_fetch_assoc($rs) );
  10.  
  11. //<=3 para que haga las 3 tablas de 4 columnas c/u e internamente 3 filas
  12. for( $i = 1; $i <= 3; $i++ )
  13. {
  14. echo '<table>';
  15. echo '<tr><td>'.$ret[$i][0].'<td>'.$ret[$i+1][0].'</td><td>'.$ret[$i+2][0].'</td><td>'.$ret[$i+3][0].'</td></tr>';
  16. echo '<tr><td>'.$ret[$i][1].'<td>'.$ret[$i+1][1].'</td><td>'.$ret[$i+2][1].'</td><td>'.$ret[$i+3][1].'</td></tr>';
  17. echo '<tr><td>'.$ret[$i][2].'<td>'.$ret[$i+1][2].'</td><td>'.$ret[$i+2][2].'</td><td>'.$ret[$i+3][2].'</td></tr>';
  18. echo '</table><br>';
  19. }
  20.  
  21. // o sin usar el for
  22. $i = 1;
  23. echo '<table>';
  24. echo '<tr><td>'.$ret[$i][0].'<td>'.$ret[$i+1][0].'</td><td>'.$ret[$i+2][0].'</td><td>'.$ret[$i+3][0].'</td></tr>';
  25. echo '<tr><td>'.$ret[$i][1].'<td>'.$ret[$i+1][1].'</td><td>'.$ret[$i+2][1].'</td><td>'.$ret[$i+3][1].'</td></tr>';
  26. echo '<tr><td>'.$ret[$i][2].'<td>'.$ret[$i+1][2].'</td><td>'.$ret[$i+2][2].'</td><td>'.$ret[$i+3][2].'</td></tr>';
  27. echo '</table><br>';
  28. echo '<table>';
  29. echo '<tr><td>'.$ret[$i+4][0].'<td>'.$ret[$i+5][0].'</td><td>'.$ret[$i+6][0].'</td><td>'.$ret[$i+7][0].'</td></tr>';
  30. echo '<tr><td>'.$ret[$i+4][1].'<td>'.$ret[$i+5][1].'</td><td>'.$ret[$i+6][1].'</td><td>'.$ret[$i+7][1].'</td></tr>';
  31. echo '<tr><td>'.$ret[$i+4][2].'<td>'.$ret[$i+5][2].'</td><td>'.$ret[$i+6][2].'</td><td>'.$ret[$i+7][2].'</td></tr>';
  32. echo '</table><br>';
  33. echo '<table>';
  34. echo '<tr><td>'.$ret[$i+8][0].'<td>'.$ret[$i+9][0].'</td><td>'.$ret[$i+10][0].'</td><td>'.$ret[$i+11][0].'</td></tr>';
  35. echo '<tr><td>'.$ret[$i+8][1].'<td>'.$ret[$i+9][1].'</td><td>'.$ret[$i+10][1].'</td><td>'.$ret[$i+11][1].'</td></tr>';
  36. echo '<tr><td>'.$ret[$i+8][2].'<td>'.$ret[$i+9][2].'</td><td>'.$ret[$i+10][2].'</td><td>'.$ret[$i+11][2].'</td></tr>';
  37. echo '</table>';

Esto seguro se puede mejorar, pero pues ahorita ando revisando
otras cosas, te dejo eso para que experimentes

si persistes en no cambiarlo y usar lo que tienes, entonces tu problema es este
Código PHP:
Ver original
  1. $iniciar_consulta = $_GET['iniciar_consulta'];
pues NO estas enviando ese valor por get (es decir, este debería estar en la paginación)
y al no cambiar este valor siempre se usará el valor por defecto para esa variable (que es 0)
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 09/10/2010 a las 19:51
  #11 (permalink)  
Antiguo 10/10/2010, 08:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 75
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Ayuda con paginacion de resultados mysql

Cita:
Iniciado por mortiprogramador Ver Mensaje
por nada
pues te digo que se puede lograr, tu problema es de conceptos,
revisaste el link que te pase??
ahora, como yo lo haría es usando un solo while (o un for)
que recorra el query inicial
algo así

Ejemplo

Código PHP:
Ver original
  1. $consultanew = "SELECT foto,titulo,direction,categorie,telecharger,share FROM album ORDER BY id desc LIMIT $pos,$limit";
  2. $rs = mysql_query($consultanew);
  3.  
  4. $i=0;
  5. do{
  6.     $ret[$i]= array($filanew['foto'],$filanew['titulo'],$filanew['direction'],$filanew['categorie'],$filanew['telecharger'],$filanew['share']);
  7. $i++;
  8. }
  9. while( $filanew = mysql_fetch_assoc($rs) );
  10.  
  11. //<=3 para que haga las 3 tablas de 4 columnas c/u e internamente 3 filas
  12. for( $i = 1; $i <= 3; $i++ )
  13. {
  14. echo '<table>';
  15. echo '<tr><td>'.$ret[$i][0].'<td>'.$ret[$i+1][0].'</td><td>'.$ret[$i+2][0].'</td><td>'.$ret[$i+3][0].'</td></tr>';
  16. echo '<tr><td>'.$ret[$i][1].'<td>'.$ret[$i+1][1].'</td><td>'.$ret[$i+2][1].'</td><td>'.$ret[$i+3][1].'</td></tr>';
  17. echo '<tr><td>'.$ret[$i][2].'<td>'.$ret[$i+1][2].'</td><td>'.$ret[$i+2][2].'</td><td>'.$ret[$i+3][2].'</td></tr>';
  18. echo '</table><br>';
  19. }
  20.  
  21. // o sin usar el for
  22. $i = 1;
  23. echo '<table>';
  24. echo '<tr><td>'.$ret[$i][0].'<td>'.$ret[$i+1][0].'</td><td>'.$ret[$i+2][0].'</td><td>'.$ret[$i+3][0].'</td></tr>';
  25. echo '<tr><td>'.$ret[$i][1].'<td>'.$ret[$i+1][1].'</td><td>'.$ret[$i+2][1].'</td><td>'.$ret[$i+3][1].'</td></tr>';
  26. echo '<tr><td>'.$ret[$i][2].'<td>'.$ret[$i+1][2].'</td><td>'.$ret[$i+2][2].'</td><td>'.$ret[$i+3][2].'</td></tr>';
  27. echo '</table><br>';
  28. echo '<table>';
  29. echo '<tr><td>'.$ret[$i+4][0].'<td>'.$ret[$i+5][0].'</td><td>'.$ret[$i+6][0].'</td><td>'.$ret[$i+7][0].'</td></tr>';
  30. echo '<tr><td>'.$ret[$i+4][1].'<td>'.$ret[$i+5][1].'</td><td>'.$ret[$i+6][1].'</td><td>'.$ret[$i+7][1].'</td></tr>';
  31. echo '<tr><td>'.$ret[$i+4][2].'<td>'.$ret[$i+5][2].'</td><td>'.$ret[$i+6][2].'</td><td>'.$ret[$i+7][2].'</td></tr>';
  32. echo '</table><br>';
  33. echo '<table>';
  34. echo '<tr><td>'.$ret[$i+8][0].'<td>'.$ret[$i+9][0].'</td><td>'.$ret[$i+10][0].'</td><td>'.$ret[$i+11][0].'</td></tr>';
  35. echo '<tr><td>'.$ret[$i+8][1].'<td>'.$ret[$i+9][1].'</td><td>'.$ret[$i+10][1].'</td><td>'.$ret[$i+11][1].'</td></tr>';
  36. echo '<tr><td>'.$ret[$i+8][2].'<td>'.$ret[$i+9][2].'</td><td>'.$ret[$i+10][2].'</td><td>'.$ret[$i+11][2].'</td></tr>';
  37. echo '</table>';

Esto seguro se puede mejorar, pero pues ahorita ando revisando
otras cosas, te dejo eso para que experimentes

si persistes en no cambiarlo y usar lo que tienes, entonces tu problema es este
Código PHP:
Ver original
  1. $iniciar_consulta = $_GET['iniciar_consulta'];
pues NO estas enviando ese valor por get (es decir, este debería estar en la paginación)
y al no cambiar este valor siempre se usará el valor por defecto para esa variable (que es 0)
saludos
Muchas gracias por tu respuesta..
Lo cambié al código que tu me díste pero me da este error:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\RIFAUDIO\paginadorPHP\archivos\tabl apersonalizada.php on line 12


Y en la linia 12 tengo esto:
while( $filanew = mysql_fetch_assoc($rs) );

Mucahs gracias de nuevo
  #12 (permalink)  
Antiguo 10/10/2010, 14:42
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Ayuda con paginacion de resultados mysql

revisa que este asignado el $rs un mysql_query
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: mysql, paginacion, resultados
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 00:27.