Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2012, 08:05
Hekaly
 
Fecha de Ingreso: enero-2010
Mensajes: 30
Antigüedad: 14 años, 4 meses
Puntos: 0
Pregunta Duda con filtrado de tablas php

Muy buenas a todos.

El problema que tengo es con el filtrado de tablas, os cuento como lo tengo.

Tengo una tabla de consolas que es llamada a una tabla mysql, dicha tabla se me genera en la web via php.

A la hora de filtrar lo hago a travez de un formulario, poniendo en cada select un onchange="this.form.submit()" para que el filtrado se haga automaticamente. Hasta aqui todo perfecto.

La duda viene cuando quiero hacer un segundo filtrado, por ejemplo que sean consolas de la tercera generacion y que empiecen por la letra A.

No se como hacer para que el filtro se guarde al realizar el subfiltro.

Os dejo la parte de codigo que tengo.

Código:
<form name="listaPlataformas" method="post" action="">


  
<select name="letra" id="letra" onchange="this.form.submit()">
           	  <option SELECTED value="">Todos</option>
                  <option  value="a">Letra A</option>
                                    ..............
	         <option  value="z">Letra Z</option>
</select>

<select name="generacion" id="generacion" onchange="this.form.submit()">
           	  <option SELECTED value="">Todas</option>
                          <option  value="primera">1º Generacion</option>
                                                 ........
			  <option  value="septima">7º Generacion</option>
</select>
</form>
NOTA: Las dos lineas que he puesto "........." es para simplificar codigo y no repetir una linea con cada letra o generacion.

Los datos de los select los recogo de la siguiente forma.

Código:
$letra=$_POST['letra'];
$generacion=$_POST['generacion'];
Respecto la consulta mysql es las siguiente.

Código:
$consulta="SELECT plataformas.imagen,nombre,compania,categoria,generacion,numJuegos FROM plataformas,compania WHERE plataformas.idCompania = compania.idCompania AND nombre LIKE '". $letra ."%' AND generacion LIKE '". $generacion ."%'";

La pregunta es, ¿Como tendria que poner la consulta sql o php para que pueda recordar todos los filtros?

Luego tengo otras dos dudas.

La primera es que al cargar la pagina por primera vez me sale dos errores.

"Notice: Undefined index: letra in on line 121
Notice: Undefined index: generacion in on line 122"

Pero eso seguramente sea por que la primera vez no he seleccionado nada en los filtros y la variable no esta bien definida, pero lo raro es que si tengo en los select "SELECTED" no deberia salirme estos errores, no?, aunque creo que se puede solucionar con un if que si es la priemera vez no se ejecuta el "WHERE" del filtro.

La segunda duda (aunque creo que es una tonteria) es que cuando selecciono un filtro, por ejemplo que empieze por letra A. Lo suyo es que una vez filtrado en el campo letra aparezca A y no todos (que es el valor por defecto), es decir, me filtra pero no conserva el selected en el imput.

Muchas gracias por vuestra ayuda.