Duda sobre resultado de consulta sql de juego de registros en Dreamweaver en una base de datos Mysql

Hola expertos. Tengo un problema que me está sacando canas. Creé un juego de registros en Dreamweaver para mostrar los registros contenidos en una base de datos Mysql y en orden aleatorio. El juego de registros tiene su respectiva paginación. Es decir, por ejemplo, muestra de 1 a 6 de 15. Hasta ahí todo bien, los registros aparecen en orden aleatorio. El gran problema es que cuando paso a la segunda página se repiten algunos registros de los que aparecieron en la primera página. Lógicamente, no quiero que se repitan. ¿Qué estoy haciendo mal?. Aquí está el Query que utilizo en el juego de registros:
SELECT *, rand() AS randomNumber
FROM cuentas
WHERE depto_prop = colname
ORDER BY randomNumber
Cualquier ayuda la agradecería muchísimo.

1 Respuesta

Respuesta
1
Probablemente el problema no sea que está repitiendo registros, sino que cuando te vas a la segunda "página de resultados" el script se ejecuta de nuevo, y por tanto la consulta SQL vuelve a lanzarse y vuelve a sacarte los registros ordenados aleatoriamente otra vez. Coincide que salen algunos de los que salen en la primera página y por eso te da la sensación de que se repiten.
Si puedes usar sesiones, guarda el result de la consulta en una variable de sesión y monta la paginación a partir de ahí. Si no te manejas lo suficiente con PHP para entender lo que te propongo, siento decirte que le estás pidiendo a Dreamweaver más de lo que puede hacer por ti.
Y si te interesa aprender sobre el tema de las sesiones.
Gracias Monroepka, si, definitivamente eso es lo que sucede, la consulta es la que se repite. De todos modos si pudieras ayudarme un poco y darme una mano y escribir un pequeño script de cómo pudiera guardar la sesión en una variable y montar la paginación desde ahí me ayudarías muchísimo.
Ok, lo primero es lo primero; lo básico respecto a las sesiones. Te dejo unos enlaces.
http://www.tizag.com/phpT/phpsessions.php
http://www.webestilo.com/php/php12a.phtml
http://es2.php.net/session
Visto eso, básicamente se trata de que lances la consulta sql, que normalmente se hace así...
$resultado = mysql_query($consulta);
...de esta otra forma...
$_SESSION['resultado'] = mysql_query($consulta);
Asegurate de que sólo se ejecuta una vez para evitar el mismo problema que tenías...
if (!isset($_SESSION['resultado']))
{
$_SESSION['resultado'] = mysql_query($consulta);

}

Y luego saca los datos del esa misma supervariable de sesión en vez de de la variable local...
while($fila = mysql_fetch_array($_SESSION['resultado']))
Para empezar la paginación correctamente en cada página, prueba con esto (suponiendo que tengas una variable GET con el número de página y quieras mostrar 10 resultados por página...)
mysql_data_seek(,$_SESSION['resultado'], $_GET['page']*10);
Espero haber ayudado. Lee la documentación, a programar en PHP solo se aprende mediante el ensayo y error ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas