Foros del Web » Programando para Internet » PHP »

Consulta en PHP MySQL donde haga una búsqueda dependiendo si existen ciertos valores

Estas en el tema de Consulta en PHP MySQL donde haga una búsqueda dependiendo si existen ciertos valores en el foro de PHP en Foros del Web. Tengo una duda muy grande. Tengo una base de datos MySQL, y quiero hacer una consulta donde el cliente me diga cuales variables deben existir ...
  #1 (permalink)  
Antiguo 17/10/2012, 12:00
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 11 meses
Puntos: 15
Consulta en PHP MySQL donde haga una búsqueda dependiendo si existen ciertos valores

Tengo una duda muy grande. Tengo una base de datos MySQL, y quiero hacer una consulta donde el cliente me diga cuales variables deben existir (que su valor no sea nulo).

Las variables son por ejemplo: Precio, Modelo, Marca (en realidad son muchas más)

Lo primero que haría es hacer el formulario de opción múltiple donde el usuario selecciones las variables que deben existir:

Código HTML:
Ver original
  1. <form name="buscar" method="post" action="resultados2.php" >
  2.                     <input type="checkbox" name="asunto3[]" id="1" value="Precio">Precio
  3.                     <input type="checkbox" name="asunto3[]" id="2" value="Modelo">Modelo<br />
  4.                     <input type="checkbox" name="asunto3[]" id="3" value="Marca">Marca
  5.                 </form>

Luego, como metí las variables en un array (porque con opción múltiple no se puede de otra forma). Extraigo el dato y le paso un implode:


Código PHP:
Ver original
  1. <?php
  2. $variables = $_POST['asunto3'];
  3. $variable = implode($variables,",");
  4. ?>

La variable $variable seguramente me va arrojar una cadena así: "marca, modelo". Dependiendo de las variables que haya seleccionado el cliente.

Lo normal sería crear el enunciado de MySQL en base al resultado a esta variable y usar condicionales. Por ejemplo:

Código PHP:
Ver original
  1. <?php
  2.     if ($variable == "marca, modelo") {$sql = "SELECT * FROM pedimento Where Modelo is not null AND Marca is not null" ;}
  3. ?>

De esta forma tengo que hacer uno por cada combinación. El problema es que son más de 6 variables y entonces son muchas las combinaciones que tengo que hacer. ¿No hay una forma más sencilla de hacer esto?

Se los agradecería.

Muchas gracias.
  #2 (permalink)  
Antiguo 17/10/2012, 12:18
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Consulta en PHP MySQL donde haga una búsqueda dependiendo si existen ciert

Y si haces algo como esto:
Código PHP:
Ver original
  1. $variables = $_POST['asunto3'];
  2. $condiciones = implode($variables," NOT NULL AND");
  3. $tCond = substr($condiciones, 0,strlen($condiciones)-3); //esto para sacar el ultimo AND
  4. $sql = "SELECT * FROM pedimento WHERE $tCond";
No se... podria servir.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 17/10/2012, 12:20
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 4 meses
Puntos: 88
Respuesta: Consulta en PHP MySQL donde haga una búsqueda dependiendo si existen ciert

no se como tienes estructuradas tus tablas ni como es que necesitas los datos sin embargo la opción que te puedo dar es que no uses el implode, lo mejor es que crees una variable que contendrá una cadena, recorrer el array asunto y mientras lo recorres verifica cuales han sido marcados y tomas su valor y le concatenas el is not null y esto lo vas concatenando a la variable que creaste el resultado lo unes con tu consulta
"SELECT * FROM pedimento Where $variableCreada"
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 17/10/2012, 12:38
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 11 meses
Puntos: 15
Respuesta: Consulta en PHP MySQL donde haga una búsqueda dependiendo si existen ciert

Muchas gracias a ambos, lo pondré en práctica

Etiquetas: ciertos, dependiendo, formulario, mysql, sql, variables, usuarios
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 19:37.