Foros del Web » Programando para Internet » PHP »

problema paginacion de resultados

Estas en el tema de problema paginacion de resultados en el foro de PHP en Foros del Web. Hola a todos , es la primera vez que posteo en este foro , a ver si vosotros podeis ayudarme. Estoy haciendo una web para ...
  #1 (permalink)  
Antiguo 27/12/2006, 05:56
 
Fecha de Ingreso: diciembre-2006
Mensajes: 10
Antigüedad: 17 años, 4 meses
Puntos: 0
problema paginacion de resultados

Hola a todos , es la primera vez que posteo en este foro , a ver si vosotros podeis ayudarme. Estoy haciendo una web para practica en la que a traves de un formulario consulto la base de datos mysql. Si no pongo ninguna opcion me da todos los resultados y me los pagina perfectamente , pero si le indico por ejemplo que me de los resultados de un determinado tipo me da los primeros resultados pero cuando le doy a la pagina siguiente no me da los siguientes resultados. Creo que el problema es con la variable que me la pasa a traves del formulario pero cuando llamas en el paginador a la siguiente pagina se pierde esa variable con lo cual no me da los siguientes resultados y es que no tengo ni idea de como hacer que esa variable permanezca durante todas las llamadas mientras yo no la cambie en el formulario . Dejo aqui el codigo para veais mas o menos lo que hago y a ver si vosotros me podeis ayudar a solucionarlo. Muchisimas gracias a todos.

El formulario de busqueda seria algo asi:

Código:
<form name="busqueda" action="intento.php" method="post" enctype="application/x-www-form-urlencoded">
<TABLE WIDTH=248 BORDER=0 CELLPADDING=0 CELLSPACING=0>
        
        <TR> 
          <TD background="images/a_17.jpg" WIDTH=248 ALT="" valign="top"> <div class="text" style="color:000000; font-size:11px; padding-left:25"> 
          <p align="center"><strong>Opci&oacute;n<br>

            <select name="Opcion" id="Opcion" STYLE="WIDTH:120">
<option value="0" selected>Todos</option>
<option value="guitarra">Guitarra</option>
<option value="bajo">Bajo</option>

            </select>
            <br>
            </strong><strong>Tipo<br>
            <select name="Marca" id="Tipo" STYLE="WIDTH:120">
              <option value="0" selected>Todos</option>
<option value="Fender">Fender</option>
<option value="Gibson">Gibson</option>
<option value="Ibanez">Ibanez</option>
<option value="Washburn">Washburn</option>
<option value="Tyler">Tyler</option>
<option value="Framus">Framus</option>
<option value="Suhr">Suhr</option>
<option value="Warwick">Warwick</option>
          </select>
            <br>
         Precio<br>
            </strong><strong></strong><strong></strong><strong> 
            <select name="Precio" id="Precio" STYLE="WIDTH:120">
              <option value="0">Todos</option>
              <option value="600">Menos de 600 &euro;</option>
              <option value="1000">Menos de 1.000&euro;</option>
              <option value="2000">Menos de 2.000&euro;</option>
              <option value="3000">Menos de 3.000 &euro;</option>
              <option value="5000">Menos de 5.000 &euro;</option>
            </select>
            
          </p>
            </div></TD>
        </TR>
        <TR> 
          
      <TD WIDTH=248 HEIGHT=38><A HREF="javascript:document.forms.busqueda.submit();">BUSCAR</A></TD>
        </TR>
  
</div>
   
        
      </TABLE>
</form>



Y la pagina a la que llama el formulario "intento.php" seria algo asi:


Código:
<html>
<head>
<title>Páginación de resultados</title>
</head>
<body bgcolor=#FFFFFF>
<?
// Datos de conexión a la base
$base="datos";
$con=mysql_connect(servidor,user,password);
mysql_select_db($base,$con);

if (!isset($pg))
$pg = 0; // $pg es la pagina actual
$cantidad=10; // cantidad de resultados por página
$inicial = $pg * $cantidad;

$pegar = "SELECT * FROM datos WHERE marca= '$Marca' LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());

$contar = "SELECT * FROM datos WHERE marca='$Marca' ";
$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>";
?>
</body>
</html>

Espero que podais ayudarme , muchisimas gracias.
  #2 (permalink)  
Antiguo 27/12/2006, 06:06
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: problema paginacion de resultados

Hola! bienvenido al foro...
el problema q tienes es q no pasas la variable marca cuando haces la paginacion.
Código PHP:
if ($pg != 0) {
$url $pg 1;
echo 
"<a href='$PHP_SELF?pg=".$url."&marca=".$marca."'>&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."&marca=".$marca.">1</a> ";
} else {
echo 
"<a href='$PHP_SELF?pg=".$i."&marca=".$marca."'>";
$i $i+1;
echo 
$i."</a>&nbsp;";
}
}
}
if (
$pg $pages) {
$url $pg 1;
echo 
"<a href='$PHP_SELF?pg=".$url."&marca=".$marca."'>Siguiente &raquo;</a>";
} else {
echo 
" ";
}
echo 
"</p>"
no he probado el codigo pero con esto tendria q funcionarte...

por cierto.. si estas empezando.. prueba con el Paginator de Jpinedo un paginador exo por uno d los moderadores deste foro!


saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 27/12/2006, 06:18
 
Fecha de Ingreso: diciembre-2006
Mensajes: 10
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: problema paginacion de resultados

Muchisimas gracias por responder tan rapido, ahora mismo lo pruebo y te digo.

GRACIAS
  #4 (permalink)  
Antiguo 27/12/2006, 06:27
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: problema paginacion de resultados

Sergi_climent, yo tengo el mismo problema al ordenar los resultados, a partir de la segunda pagina no se muestran ordenados. Uso el paginator de Jpinedo y inclui el formulario de ordenacion.

Sabes como puedo arreglarlo?

Gracias.
  #5 (permalink)  
Antiguo 27/12/2006, 06:42
 
Fecha de Ingreso: diciembre-2006
Mensajes: 10
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: problema paginacion de resultados

Muchisimas gracias , era eso habia olvidado pasarle la variable al paginador y le hechare un vistazo al paginator.

GRACIAS otra vez.
  #6 (permalink)  
Antiguo 27/12/2006, 09:10
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: problema paginacion de resultados

Cita:
Iniciado por AbdelioR Ver Mensaje
Sergi_climent, yo tengo el mismo problema al ordenar los resultados, a partir de la segunda pagina no se muestran ordenados. Uso el paginator de Jpinedo y inclui el formulario de ordenacion.
Sabes como puedo arreglarlo?
Gracias.
Yo de momento no uso ningun paginador xq hasta al momento no me ha exo falta!
por lo q he visto puede ser q no hayas declarado la variable $_pagi_propagar???


Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #7 (permalink)  
Antiguo 27/12/2006, 14:37
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: problema paginacion de resultados

Si, probé a ponerla a "true" pero no funciona... :(
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 05:48.