Foros del Web » Programando para Internet » PHP »

consultas a dos menus

Estas en el tema de consultas a dos menus en el foro de PHP en Foros del Web. hola, os cuento el nuevo problema. tengo dos menus desplegables que contienen información diferente. he habilitado un único botón de búsqueda que me permita realizar ...
  #1 (permalink)  
Antiguo 29/05/2007, 03:32
 
Fecha de Ingreso: mayo-2007
Mensajes: 25
Antigüedad: 16 años, 11 meses
Puntos: 0
consultas a dos menus

hola, os cuento el nuevo problema. tengo dos menus desplegables que contienen información diferente. he habilitado un único botón de búsqueda que me permita realizar las búsquedas según la opción seleccionada o ambas seleccionadas.

el problema viene cuando pongo un bucle if que me permita una búsqueda entre un menu y otro, ya que todavía no lo he intentado con los dos menus a la vez. sólamente me funciona uno de ellos. donde puede estar el error? os dejo aqui el código...

if ($_POST['select']==1) {
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%CCTV%' ");
} elseif($_POST['select']==2){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Control de Accesos%' ");
} elseif ($_POST['select']==3){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Integración Audio%' ");
} elseif ($_POST['select']==4){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Integración AV%' ");
} elseif ($_POST['select']==5){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Interfonía%' ");
} elseif ($_POST['select']==6){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Intrusión%' ");
} elseif ($_POST['select']==7){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Megafonía%' ");
} elseif ($_POST['select']==8){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Voz y Datos%' ");
} else {
echo "Búsqueda no válida";
}



if ($_POST['select2']==1)
{

$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE provincia='Valencia' ");

} else {
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE provincia='Alicante' ");
}


puede ser que tenga que inicializar alguna variable cuando se haya realizado una búsqueda? saludos, gracias!!
  #2 (permalink)  
Antiguo 29/05/2007, 03:47
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: consultas a dos menus

Haría falta ver el código del formulario.
Una recomendación. Utiliza switch en vez de tantos if's.

Un saludo
  #3 (permalink)  
Antiguo 29/05/2007, 04:03
 
Fecha de Ingreso: mayo-2007
Mensajes: 25
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: consultas a dos menus

aqui mando el codigo del formulario. De momento no te preocupes por tantos if porque me han funcionado como quiero con otro ejemplo, gracias por tu ayuda, a ver si sabes donde tengo el error!!!

<form id="tipo_inst" name="tipo_inst" method="post" action="busqueda_tipo_inst.php">
<label>Tipo instalación
<select name="select">
<option value=0 selected="selected">-Elige una opción de la lista-</option>
<option value=1>CCTV</option>
<option value=2>Control Accesos</option>
<option value=3>Integración Audio</option>
<option value=4>Integración AV</option>
<option value=5>Interfonía</option>
<option value=6>Intrusión</option>
<option value=7>Megafonía</option>
<option value=8>Voz y Datos</option>
</select>
</label>
<label>y/o
<form id="provincia" name="provincia" method="post" action="busqueda_provincia.php">
<label> Provincia
<select name="select2">
<option value="0" selected="selected">-Elige una opci&oacute;n de la lista-</option>
<option value="1">Valencia</option>
<option value="2">Alicante</option>
</select>
</label>
<input type="submit" name="Submit" value="Buscar">
</form>
</form>

gracias por la ayuda!!
  #4 (permalink)  
Antiguo 29/05/2007, 04:07
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: consultas a dos menus

Lo primero sería cambiar el nombre del primer select. No vaya a ser que eso de problemas. En teoría 'select' es una palabra reservada.
Lo segundo es que tienes cada select en un formulario distinto. Cada formulario apunta (atributo action) a un script diferente, así que no veo cómo podrías hacer una búsqueda con el valor de los dos select.
  #5 (permalink)  
Antiguo 29/05/2007, 04:19
 
Fecha de Ingreso: mayo-2007
Mensajes: 25
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: consultas a dos menus

vuelvo a la carga. habia probado ya a poner toda la informacion en el mismo archivo php, pero sigo teniendo el mismo problema de que solo realiza las búsquedas bien en el campo provincia, no el de de tipo_inst. te dejo aqui las modificaciones por si se te ocurre alguna idea, ok?

<form id="tipo_inst" name="tipo_inst" method="post" action="busqueda_tipo_prov.php">
<label>Tipo instalación
<select name="s1">
<option value=0 selected="selected">-Elige una opción de la lista-</option>
<option value=1>CCTV</option>
<option value=2>Control Accesos</option>
<option value=3>Integración Audio</option>
<option value=4>Integración AV</option>
<option value=5>Interfonía</option>
<option value=6>Intrusión</option>
<option value=7>Megafonía</option>
<option value=8>Voz y Datos</option>
</select>
</label>
<label>y/o
<form id="provincia" name="provincia" method="post" action="busqueda_tipo_prov.php">
<label> Provincia
<select name="s2">
<option value="0" selected="selected">-Elige una opci&oacute;n de la lista-</option>
<option value="1">Valencia</option>
<option value="2">Alicante</option>
</select>
</label>
<input type="submit" name="Submit" value="Buscar">
</form>
</form>


y el codigo de las búsquedas:

//Busqueda de tipo de instalación
if ($_POST['s1']==1) {
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%CCTV%' ");
} elseif($_POST['s1']==2){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Control de Accesos%' ");
} elseif ($_POST['s1']==3){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Integración Audio%' ");
} elseif ($_POST['s1']==4){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Integración AV%' ");
} elseif ($_POST['s1']==5){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Interfonía%' ");
} elseif ($_POST['s1']==6){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Intrusión%' ");
} elseif ($_POST['s1']==7){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Megafonía%' ");
} elseif ($_POST['s1']==8){
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE tipo_inst LIKE '%Voz y Datos%' ");
} else {
echo "Búsqueda no válida";
}

//Busqueda provincia
if ($_POST['s2']==1)
{
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE provincia='Valencia' ");

} else {
$result=mysql_query("SELECT nombre_inst,tipo_inst,localidad,provincia,DATE_FOR MAT(fecha_fin,'%d-%m-%Y')fecha_fin,enlace FROM eventos WHERE provincia='Alicante' ");
}

gracias de nuevo!
  #6 (permalink)  
Antiguo 29/05/2007, 04:29
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: consultas a dos menus

No entiendo por qué pones dos formularios uno dentro de otro. ¿Por qué no poner los dos select dentro de un mismo formulario?
  #7 (permalink)  
Antiguo 29/05/2007, 04:31
 
Fecha de Ingreso: mayo-2007
Mensajes: 25
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: consultas a dos menus

gracias jerkan, me puedes especificar un poco más a q te refieres?
  #8 (permalink)  
Antiguo 29/05/2007, 04:34
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: consultas a dos menus

¿Cómo podría ser más específico? A ver así:
Código HTML:
<form>
<select name="s1" size="1">
...
</select>
<select name="s2" size="1">
...
</select>
<input type="submit" />
</form> 
  #9 (permalink)  
Antiguo 29/05/2007, 04:45
 
Fecha de Ingreso: mayo-2007
Mensajes: 25
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: consultas a dos menus

no entiendo q quieres decir, he quitado un form y sigue sin funcionar... te muestro como he dejado la parte del formulario

<form id="tipo_inst" name="tipo_inst" method="post" action="busqueda_tipo_prov.php">
<label>Tipo instalación
<select name="s1">
<option value=0 selected="selected">-Elige una opción de la lista-</option>
<option value=1>CCTV</option>
<option value=2>Control Accesos</option>
<option value=3>Integración Audio</option>
<option value=4>Integración AV</option>
<option value=5>Interfonía</option>
<option value=6>Intrusión</option>
<option value=7>Megafonía</option>
<option value=8>Voz y Datos</option>
</select>
</label>
<label>y/o
<label> Provincia
<select name="s2">
<option value="0" selected="selected">-Elige una opci&oacute;n de la lista-</option>
<option value="1">Valencia</option>
<option value="2">Alicante</option>
</select>
</label>
<input type="submit" name="Submit" value="Buscar">
</form>




me faltaría el form correspondiente a <form id="provincia" name="provincia" method="post" action="busqueda_tipo_prov.php">, pero crees que funcionaria solo poniendo el primer form? saludos, gracias!!
  #10 (permalink)  
Antiguo 29/05/2007, 08:01
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: consultas a dos menus

Tal y como lo tienes ahora, en busqueda_tipo_prov.php haz un print_r($_POST) para ver si recibes los valores que deberías.
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 01:48.