Foros del Web » Programando para Internet » PHP »

Distribuir en distintas paginas

Estas en el tema de Distribuir en distintas paginas en el foro de PHP en Foros del Web. Hola a todos. Estoy trabajando en un sistema en MySQL y PHP de descargas, y me encuentro con el problema de que quiero que en ...
  #1 (permalink)  
Antiguo 26/06/2007, 18:17
Avatar de hey_alan  
Fecha de Ingreso: diciembre-2006
Ubicación: México
Mensajes: 348
Antigüedad: 17 años, 4 meses
Puntos: 8
Distribuir en distintas paginas

Hola a todos.

Estoy trabajando en un sistema en MySQL y PHP de descargas, y me encuentro con el problema de que quiero que en MySQL muentre los datos de las filas de cada descarga, y si se sobrepasan las 10 descargas, que aparesca un link a otra pagino donde continuen.

Se que puede ser mucho pedir, pero porfavor me gustaria que alguien me explicara más o menos como se hace.

Muchas gracias de antemano...
__________________
Alan Marth Media

Diseño web y Publicidad en Morelia, Michoacán
  #2 (permalink)  
Antiguo 26/06/2007, 18:47
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Re: Distribuir en distintas paginas

Hola.

Lo que tienes que hacer es mas de lógica que otra cosa.

Para limitar los resultados en MySQL, se añade en la consulta un limit (limit X,Y), el cual limita la consulta a X números partidiendo del registro Y.

Un ejemplo:
Código PHP:
$consulta=mysql_query("SELECT * FROM tabla limit 10,50"); 
En este ejemplo limitas la consulta a 10 resultados partiendo del registro 50.

Para hacerlo de forma dinámica, el número del registro a partir del cual se hará la consulta (en este caso 50), lógicamente debe de ser una variable.
Normalmente ésta se pasa por URL.

Ejemplo:
Código PHP:
$limite=addslashes($_GET["limite"]);
$consulta=mysql_query("SELECT * FROM tabla limit 10,".$limite); 
No tiene mas misterio.

La función addslashes() es por seguridad, para que no puedan usar comillas u otros caracteres al pasarlo por URL.
  #3 (permalink)  
Antiguo 26/06/2007, 19:00
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: Distribuir en distintas paginas

Hola hey_alan

No considero que sea mucho pedir, pues para eso estamos, voy a tratar de orientarte un poco.

Lo que tu tratas de hacer se conoce como "paginacion de resultados" en PHP.

Vamos a tener una variable que en este caso se pase por URL, y se llamara $iniciar, si dicha variable no existe, la crearemos como cero.

Código PHP:
if (!$_GET["iniciar"]) { 
$iniciar 0

else { 
$iniciar $_GET["iniciar"]; 
}

$suma $iniciar 10
Esta variable indicara el primer registro desde donde vamos a leer.

La variable suma indicara el ultimo, vale decir, el numero de inicio mas diez.

Una vez que tengamos esto hacemos la consulta MySQL, asumiremos que tienes un campo "id" y otro campo "nombre", y la tabla se llama "tutabla"

Código PHP:
// Total de registros
$sql1 mysql_query("SELECT * FROM [B]tutabla[/B]");
$total mysql_num_rows($sql1);  
mysql_free_result($sql1); // Liberamos los recursos.

// Cargamos los registros que nos correspondan
$sql2 mysql_query("SELECT * FROM [B]tutabla[/B] ORDER BY [B]id[/B] DESC LIMIT $iniciar,$suma");

while (
$fila mysql_fetch_assoc($sql2)) {
 echo 
"Nombre: ".$fila["nombre"]."<br>";

Con la sentencia WHILE recorremos la tabla tantos resultados se encuentre, ademas tenemos la variable $total, con la cantidad de campos retornados, ahora veremos si $total - $suma es mayor que cero, es porque nos quedan registros, asi que mostramos que tenemos una pagina pendiente.

Código PHP:
$dif $total $suma;
if (
$dif 0) {
  echo 
"<a href=\"tupagina.php?iniciar=".$suma."\"> Pagina Siguiente </a>";

Ahi esta!, si quieres poner un "Pagina Anterior", solo debes verificar que $suma sea mayor que 10, osino estaran en la primera pagina :P

Esto es bastante "sencillo" pero no es una mala alternativa, tu ves como lo puedes mejorar.

Saludos
__________________
Roberto Osses Elgueta
Senior Web Developer
  #4 (permalink)  
Antiguo 30/06/2007, 22:53
Avatar de hey_alan  
Fecha de Ingreso: diciembre-2006
Ubicación: México
Mensajes: 348
Antigüedad: 17 años, 4 meses
Puntos: 8
Re: Distribuir en distintas paginas

Muchisimas gracias a ambos. Finalmente lo he hecho de la forma que ha dicho RoKo. Solo una cosa, he puesto asi para volver a la pagina anterior...¿esta bien?:

Código:
$diferencia = $total - $suma;
$anterior= $iniciar - 10;

if ($suma>10){
echo '<a href="enlaces.php?ver=enlaces&cat='.$cat.'&iniciar='.$anterior.'">Pagina Anterior</a> - ';
}

if ($diferencia>0){
echo '<a href="enlaces.php?ver=enlaces&cat='.$cat.'&iniciar='.$suma.'">Pagina Siguiente</a>';
}
__________________
Alan Marth Media

Diseño web y Publicidad en Morelia, Michoacán
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 15:12.