Foros del Web » Programando para Internet » PHP »

Consulta Mysql

Estas en el tema de Consulta Mysql en el foro de PHP en Foros del Web. Hola que tal buen dia espero puedan ayudarme, tengo un formulario de consulta en el tengo 4 opciones posibles a seleccionar (Ciudad, escuela,grado, grupo), mismas ...
  #1 (permalink)  
Antiguo 12/04/2011, 09:26
 
Fecha de Ingreso: febrero-2011
Ubicación: Mexico df.
Mensajes: 34
Antigüedad: 13 años, 2 meses
Puntos: 0
Consulta Mysql

Hola que tal buen dia espero puedan ayudarme, tengo un formulario de consulta en el tengo 4 opciones posibles a seleccionar (Ciudad, escuela,grado, grupo), mismas que se seleccionan de una lista de opciones cada una. ya ejecuto esa consulta pero se tienen que definir las cuatro condiciones, mi pregunta es, ¿Como hago para dejar libre las opciones a seleccionar y de ahi generar mi consulta, es decir, que seleccionen por ejemplo escuela, grado, grupo, o bien Ciudad y escuela????

Ayuda por favor Estoy trabajando con PHP y MYsql
  #2 (permalink)  
Antiguo 12/04/2011, 09:48
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Consulta Mysql

Saludos

Debes ir manejando un condicional y por cada item seleccionado, realizar la condición para construir la sentencia sql por ejemplo:

Código PHP:
$condicion="";
if(
$seleccion['ciudad']!=""){
$condicion.=" ***** ";
}
if(
$seleccion['escuela']!=""){
$condicion.=" ***** ";
}
if(
$seleccion['grado']!=""){
$condicion.=" ***** ";
}
...... 
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 12/04/2011, 09:54
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Consulta Mysql

Yo te recomiendo que primero obtengas un array con tus opciones, es decir, ciudades, grados, etc. ( Esto ya lo harás para mostrar las opciones), por ejemplo en desplegables o algo así.

Después, recoges si se a seteado alguna opción, y compruebas que esta sea válida mirando si esta dentro de tu array de opciones.

Después, como te comentan, haces un caso para cada opción.

if($ciudad) {
$sql .= 'AND ciudad_id = ' . $ciudad;

por ejemplo.

Un saludo!
  #4 (permalink)  
Antiguo 12/04/2011, 10:23
 
Fecha de Ingreso: marzo-2011
Mensajes: 107
Antigüedad: 13 años
Puntos: 22
Respuesta: Consulta Mysql

No sé si te he entendido bien pero lo que quieres hacer es un formulario con 4 select? Porque así lo haría yo, crear un formulario que tenga 4 select y que cada uno tenga las opciones que puedas tener guardadas en las tablas

Código HTML:
<form name="opciones" method="post" action="">
<select name="escuela">
   <option value="0">Elegir escuela</option>
<?php
  // haz la conexion a la base de datos
   $query = "SELECT * FROM tabla_escuela";
   $result = mysql_query($query,$db);
   while($fila = mysql_fetch_array($result))
   {
?>
      <option value="<?php echo $fila['id'];?>"><?php echo $fila['nombre_escuela'];?></option>
<?php
   }
   // esto mismo con los otras 3 opciones
?>
   </select>
   <input type="submit" value="Enviar"> 
Al ser formulario en la misma página recogemos los datos

Código PHP:
if($_POST)
{
   
$escuela $_POST['escuela'];
   
// ahora ya depende de lo que quieras hacer por ejemplo una tabla con los datos elegidos

   
$query "SELECT * FROM tabla_escuela WHERE id = " $escuela//recuerda que es un id
   
$result mysql_query($query,$db);

Espero que sea lo que pedías...
  #5 (permalink)  
Antiguo 12/04/2011, 10:30
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Consulta Mysql

Cita:
Iniciado por Saneko Ver Mensaje
No sé si te he entendido bien pero lo que quieres hacer es un formulario con 4 select? Porque así lo haría yo, crear un formulario que tenga 4 select y que cada uno tenga las opciones que puedas tener guardadas en las tablas

Código HTML:
<form name="opciones" method="post" action="">
<select name="escuela">
   <option value="0">Elegir escuela</option>
<?php
  // haz la conexion a la base de datos
   $query = "SELECT * FROM tabla_escuela";
   $result = mysql_query($query,$db);
   while($fila = mysql_fetch_array($result))
   {
?>
      <option value="<?php echo $fila['id'];?>"><?php echo $fila['nombre_escuela'];?></option>
<?php
   }
   // esto mismo con los otras 3 opciones
?>
   </select>
   <input type="submit" value="Enviar"> 
Al ser formulario en la misma página recogemos los datos

Código PHP:
if($_POST)
{
   
$escuela $_POST['escuela'];
   
// ahora ya depende de lo que quieras hacer por ejemplo una tabla con los datos elegidos

   
$query "SELECT * FROM tabla_escuela WHERE id = " $escuela//recuerda que es un id
   
$result mysql_query($query,$db);

Espero que sea lo que pedías...
Hola buenas,

Tendrías que concatenar la condición a una consulta general, en lugar de hacer una consulta nueva por cada filtro... no?

Un saludo!
  #6 (permalink)  
Antiguo 12/04/2011, 14:45
 
Fecha de Ingreso: marzo-2011
Mensajes: 107
Antigüedad: 13 años
Puntos: 22
Respuesta: Consulta Mysql

Cita:
Iniciado por miktrv Ver Mensaje
Hola buenas,

Tendrías que concatenar la condición a una consulta general, en lugar de hacer una consulta nueva por cada filtro... no?

Un saludo!
Sí claro, pero verlo por separado es más fácil que todo hecho un bloque, una vez que se entienda ya se puede simplificar =P
  #7 (permalink)  
Antiguo 13/04/2011, 17:08
 
Fecha de Ingreso: febrero-2011
Ubicación: Mexico df.
Mensajes: 34
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Consulta Mysql

Agradezco a todos los que tuvieron la amabilidad de responder, y una disculpa pork no habia podido revisar los mensajes hasta hoy, mas o menos ya tengo la idea ya lleno cada select con los datos de mi bdd, lo que quiero hacer esk de las 4 opciones que brindo que el usuario seleccione 2 opciones o mas, es decir, cuidad y escuela, o escuela y grupo, o bien escuela, grado y grupo, o las 4 opciones. o simplemente dejar al usuario elegir las opciones que necesite.

Gracias espero me haya explicado y puedan ayudarme

Etiquetas: mysql
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 21:12.