He programado un buscador para una db MySQL que recibe los datos desde un formulario en forma de strings. El problema viene cuando intento paginar los resultados, ya que no se como pasarle los argumentos de forma correcta.
El código es bastante cutre pero funciona bien. Seguro que habrá alguna manera más "correcta" de hacerlo.
Os pongo el código resumido a ver si me podeis echar una mano.
Formulario con selección múltiple
Código HTML:
<form name="form" action="buscar.php" method="post"> <input type="checkbox" name="mode[]" value="*" checked>Todo</td> <input type="checkbox" name="mode[]" value="admin">Administrador</td> <input type="checkbox" name="mode[]" value="normal">Normal</td> <input type="checkbox" name="mode[]" value="guest">Invitado</td> <input name="buscar" type="submit" class="texto" value="Buscar" /> </form>
Código PHP:
if (isset($buscar)) {
if ($mode[0]=="*")
$qmode="modo!= '*'";
else {
for ($i=0;$mode[$i]!="";$i++) {
if ($i==0)
$qmode="modo = '".$qmode.$mode[$i]."'";
else
$qmode=$qmode.$mode[$i]."'";
if ($mode[$i+1]!="")
$qmode=$qmode." OR modo = '";
}
}
}
$qmode="modo=$mode[0] OR modo=$mode[1]..." para el query
El problema viene al hacer la paginación, ya que no puedo poner buscar.php?pagina=".($pagina+1)."&modo='admin' OR modo='guest'"
he probado a hacer un str_replace cambiando los espacios por "%" y los "=" por "." para el link de la paginación y viceversa antes de hacer el query para la siguiente página pero no funciona.
Me parece que me estoy haciendo la picha un lío y hay alguna manera mejor (y más fácil) de hacerlo