Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2006, 05:56
ibanezrg
 
Fecha de Ingreso: diciembre-2006
Mensajes: 10
Antigüedad: 18 años, 2 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.