Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/01/2014, 11:02
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Consulta con variable igual a cualquier cosa

Se me ocurre una manera de formar la consulta y sin usar la estructura selectiva

Código PHP:
Ver original
  1. $opciones3 = array("Todo", "Oferta", "Demanda", "Intercambio");
  2. $indice = array_search($tp, $opciones3);
  3. $condicion = $indice ? " WHERE apartado3 = '" . strtoupper($opciones3[$indice]) . "'" : "";
  4. $rst_form = mysql_query("SELECT * FROM form" . $condicion);

Con array_search(), busco el valor de $tp en el array $opciones3 y si se encuentra, tomo su índice o posición, armo la parte de la condición de la consulta empezando por el "WHERE..." y le concateno el elemento del array convertido a mayúsculas. Si el elemento está en la posición cero (que se evalúa como FALSE), quiere decir que se eligió la opción "Todos" y es por eso que, en ese caso, el valor que asignaré a $condicion será una cadena vacía.

Al final, concateno el valor de $condicion a la consulta. Así es como se vería en cada caso:

Código MySQL:
Ver original
  1. SELECT * FROM form /*Todos*/
  2. SELECT * FROM form WHERE apartado3 = 'Oferta' /*Oferta*/
  3. SELECT * FROM form WHERE apartado3 = 'Demanda' /*Demanda*/
  4. SELECT * FROM form WHERE apartado3 = 'Intercambio' /*Intercambio*/

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 19/01/2014 a las 11:46