Foros del Web » Programando para Internet » PHP »

Select no me ayuda a sacar el resultado que quiero

Estas en el tema de Select no me ayuda a sacar el resultado que quiero en el foro de PHP en Foros del Web. Hola a todos: Necesito un poco (muchoooo) de ayuda con esta consulta. Me explico: Tengo un formulario que funciona como buscador con los campos "palabra ...
  #1 (permalink)  
Antiguo 28/03/2007, 19:17
Avatar de domyhamy  
Fecha de Ingreso: julio-2005
Ubicación: México, DF
Mensajes: 40
Antigüedad: 18 años, 9 meses
Puntos: 0
Select no me ayuda a sacar el resultado que quiero

Hola a todos:

Necesito un poco (muchoooo) de ayuda con esta consulta. Me explico:

Tengo un formulario que funciona como buscador con los campos "palabra clave", "sector" y "estado" y un hidden "tipo".
Ese formualrio va a un archivo de resultados en donde se deben mostrar solo las ofertas que cumplan con los demas campos, dependiendo de lo que el usuario elija o escriba, es decir si pongo en palabra clave: "hamburguesa" y en estado selecciono "Nuevo León", solo me debe mostrar las ofertas de hamburguesas que hay en nuevo león, sin embargo si dejo vacio el campo de palabra clave y elijo solo nuevo león, me saca todos las ofertas registradas de la base.
Aqui el formulario y el codigo:

Código PHP:
<form name="form1" method="post" action="ofertas_resul.php">
           <
table width='450' border='1' cellspacing='1'>
             <
caption align='top' class='Estilo6'><input name="tipo" type="hidden" value="Oferta">&nbsp;
             </
caption>
             <
tr>
               <
td width='140' class='Estilo2'>B&uacute;squeda de Productos o Servicios Ofertados.</td>
               <
td width='297' class='Estilo2'><div align="center">
                   <
input name="palabra" type="text" id="palabra" size="35">
                 &
nbsp; </div></td>
             </
tr>
             <
tr>
               <
td colspan="2" valign='top' class='Estilo2'>&nbsp;</td>
             </
tr>
             <
tr>
               <
td valign='top' class='Estilo2'>B&uacute;squeda de Ofertas por Sector Industrial. </td>
               <
td valign='top' class='Estilo2'><p align="center">
                   <
select size="1" name="sector" class="Estilo2" style="font-family: Tahoma; font-size: 9pt; border: 1px solid #F6BC36">
                     <
option value="0">Elegir Sector Industrial</option>
                     <
option>Aire AcondicionadoCalefaccion y Refrigeracion</option>
                     <
option>AlimentosBebidas y Tabacos</option>
                     <
option>Artde PapelCarton y Escolar</option>
                     <
option>Bienes de Capital</option>
                     <
option>Construccion</option>
                     </
select>
                   <
br>
               </
p></td>
             </
tr>
             <
tr>
               <
td colspan="2" valign='top' class='Estilo2'>&nbsp;</td>
             </
tr>
             <
tr>
               <
td valign='top' class='Estilo2'>B&uacute;squeda de Ofertas por Estado. </td>
               <
td valign='top' class='Estilo2'><div align="center">
                   <
select name="estado" id="estado"style="font-family: Tahoma; font-size: 9pt; border: 1px solid #F6BC36">
                     <
option value="no">Elegir Estado</option>
                     <
option value="Aguascalientes">Aguascalientes</option>
                     <
option value="Baja California">Baja California</option>
                     <
option value="Baja California Sur">Baja California Sur</option>
                     <
option value="Campeche">Campeche</option>
                     <
option value="Chiapas">Chiapas</option>
                     <
option value="Chihuahua">Chihuahua</option>
                     <
option value="Coahuila">Coahuila</option>
                     <
option value="Colima">Colima</option>
                     <
option value="Distrito Federal">Distrito Federal</option>
                     <
option value="Durango">Durango</option>
                     <
option value="Estado de Mexico">Estado de Mexico</option>
                     <
option value="Guanajuato">Guanajuato</option>
                     <
option value="Guerrero">Guerrero</option>
                     <
option value="Hidalgo">Hidalgo</option>
                     <
option value="Jalisco">Jalisco</option>
                     <
option value="Michoacan">Michoacan</option>
                     <
option value="Morelos">Morelos</option>
                     <
option value="Nayarit">Nayarit</option>
                     <
option value="Nuevo Leon">Nuevo Leon</option>
                     <
option value="Oaxaca">Oaxaca</option>
                     <
option value="Puebla">Puebla</option>
                     <
option value="Queretaro">Queretaro</option>
                     <
option value="Quintana Roo">Quintana Roo</option>
                     <
option value="San Luis Potosi">San Luis Potosi</option>
                     <
option value="Sinaloa">Sinaloa</option>
                     <
option value="Sonora">Sonora</option>
                     <
option value="Tabasco">Tabasco</option>
                     <
option value="Tamaulipas">Tamaulipas</option>
                     <
option value="Tlaxcala">Tlaxcala</option>
                     <
option value="Veracruz">Veracruz</option>
                     <
option value="Yucatan">Yucatan</option>
                     <
option value="Zacatecas">Zacatecas</option>
                    </
select>
                 &
nbsp;</div></td>
             </
tr>
             <
tr>
               <
td height='15' colspan='2' valign='middle' class='Estilo2'><br>
                 <
div align="center"><br>
                 <
input name="buscaedo" type="submit" class="Estilo2" id="buscaedo" style="color: #000000; font-family: Tahoma; font-size: 9pt; border: 1px outset #CCCCCC; background-color: #cccccc" value="Buscar">
               </
div></td>
             </
tr>
           </
table>
          </
form
pagina de resultados:
Código PHP:
<?
include ("conectar.php");
mysql_select_db ("mi_bd"$conectar);
//Sentencia sql (sin limit)
$_pagi_sql "SELECT * FROM oportunidades WHERE tipo LIKE '$tipo' AND (producto LIKE '%$palabra%' OR sector LIKE '$sector' OR estado LIKE '$estado') ORDER BY producto"
etc,etc?>
Deberia de funcionar buscando los registros tipo ofertas cuyo producto contenga la palabra clave ó de tal sector ó de tal estado.

Alguien me puede orientar????, mil gracias y perdonen mis ignorancias.

  #2 (permalink)  
Antiguo 28/03/2007, 20:43
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Select no me ayuda a sacar el resultado que quiero

Hola domyhamy no veo q recepcionas los valores enviados por POST
Código PHP:
 <?php
$tipo 
$_POST['tipo'];
$palabra $_POST['palabra'];
$sector $_POST['sector'];
$estado $_POST['estado'];
include (
"conectar.php"); 
mysql_select_db ("mi_bd"$conectar); 
//Sentencia sql (sin limit) 
$_pagi_sql "SELECT * FROM oportunidades WHERE tipo LIKE '$tipo' AND (producto LIKE '%$palabra%' OR sector LIKE '$sector' OR estado LIKE '$estado') ORDER BY producto";  
etc,etc?>
Saludos
__________________

  #3 (permalink)  
Antiguo 28/03/2007, 22:06
Avatar de domyhamy  
Fecha de Ingreso: julio-2005
Ubicación: México, DF
Mensajes: 40
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Select no me ayuda a sacar el resultado que quiero

Hola Gerson, gracias por responder, pero no me funciona; ya puse como me dijiste:
Código PHP:
<?php
$tipo 
$_POST['tipo'];
$palabra $_POST['palabra'];
$sector $_POST['sector'];
$estado $_POST['estado'];
include (
"conectar.php"); 
mysql_select_db ("mi_bd"$conectar); 
//Sentencia sql (sin limit) 
$_pagi_sql "SELECT * FROM oportunidades WHERE tipo LIKE '$tipo' AND (producto LIKE '%$palabra%' OR sector LIKE '$sector' OR estado LIKE '$estado') ORDER BY producto";  
etc,etc?>
pero no.

mira, cuando pongo la palabra clave, me busca bien las ofertas que contengan esa palabra,
Pero el problema es al elegir el sector, para que me despliegue sololas ofertas de ese sector, o al elegir el estado, para que me despliegue solo las ofertas de ese estado; al hacer sulauiera de las dos cosas anteriores, me saca todos los registros oferta de la base de datos, sin importar lo que haya elegido.


Francamente estoy pensando que es en el SELECT, pero no se como arreglarlo o comprobar si eso es lo que esta mal.

Mil gracias y ojala me puedas orientar.
  #4 (permalink)  
Antiguo 29/03/2007, 02:06
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Select no me ayuda a sacar el resultado que quiero

Hola,

vamos a ver, por de pronto veo que la <select> de sector no tiene puesto el atributo value en todas las <option>, seria conveniente que lo tuvieran

En la select veo que no distingues si no vienen valores seleccionados en las listas sector y estado y/o insertada palabra clave, se podria hacer algo asi ...

Código PHP:
$_pagi_sql "SELECT * FROM oportunidades WHERE tipo LIKE '$tipo' ";
## se incluye la busqueda por palabra clave, si se ha introducido
if(isset($_POST['palabra']) && !empty($_POST['palabra'])) {
    
$_pagi_sql .= " AND producto LIKE '%".$_POST['palabra']."%' ";
}
## se incluye la busqueda por sector, si se ha seleccionado
if(isset($_POST['sector']) && !empty($_POST['sector'])) {
    
$_pagi_sql .=" AND sector LIKE '".$_POST['sector']."' ";
}
## se incluye la busqueda por estado, si se ha seleccioando
if(isset($_POST['estado']) && !empty($_POST['estado'])) {
    
$_pagi_sql .=" AND estado LIKE '".$_POST['estado']."' ";
}
$_pagi_sql .=" ORDER BY producto"
Creo que el codigo no tiene ningun error de sintaxis, pruebalo y nos cuentas, ok?

saludos
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #5 (permalink)  
Antiguo 29/03/2007, 10:39
Avatar de domyhamy  
Fecha de Ingreso: julio-2005
Ubicación: México, DF
Mensajes: 40
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Select no me ayuda a sacar el resultado que quiero

Hola Puchitol, gracias por responder;
ya puse el código tal como me dijiste y al principio no me resultaba, pues solo si seleccionaba estado y sector me buscaba algo, con cualquiera de las demas opciones no salia nada; sin embargo, me detuve a leer bien tu mensaje y vi que debia poner los valores de <select> en sector; ademas cambien el primer <select> por "todos los sectores" y le dia valor vacío; y !funciona perfecto¡

mil gracias, te vas a ir al cielo con todo y zapatos. :corazon:

Saludos.

Te pongo aqui el codigo como quedo y el formulario por si alguien mas tiene este rollo.


el formulario de búsqueda:
Código PHP:
<form name="form1" method="post" action="ofertas_resul.php">
           <
table width='450' border='1' cellspacing='1'>
             <
caption align='top' class='Estilo6'><input name="tipo" type="hidden" value="Oferta">&nbsp;
             </
caption>
             <
tr>
               <
td width='140' class='Estilo2'>B&uacute;squeda de Productos o Servicios Ofertados.</td>
               <
td width='297' class='Estilo2'><div align="center">
                   <
input name="palabra" type="text" id="palabra" size="35">
                 &
nbsp; </div></td>
             </
tr>
             <
tr>
               <
td colspan="2" valign='top' class='Estilo2'>&nbsp;</td>
             </
tr>
             <
tr>
               <
td valign='top' class='Estilo2'>B&uacute;squeda de Ofertas por Sector Industrial. </td>
               <
td valign='top' class='Estilo2'><p align="center">
                   <
select size="1" name="sector" class="Estilo2" style="font-family: Tahoma; font-size: 9pt; border: 1px solid #F6BC36">
                     <
option [B]value="">[/B]Todos los Sectores</option>
                     <
option value="Aire Acondicionado, Calefaccion y Refrigeracion">Aire AcondicionadoCalefaccion y Refrigeracion</option>
                     <
option value="Alimentos, Bebidas y Tabacos">AlimentosBebidas y Tabacos</option>
                     <
option value="Art. de Papel, Carton y Escolar">Artde PapelCarton y Escolar</option>
                      <
option value="Servicios">Servicios</option>
                     <
option value="Tecnologia en Informatica">Tecnologia en Informatica</option>
                     <
option value="Telecomunicaciones">Telecomunicaciones</option>
                    </
select>
                   <
br>
               </
p></td>
             </
tr>
             <
tr>
               <
td colspan="2" valign='top' class='Estilo2'>&nbsp;</td>
             </
tr>
             <
tr>
               <
td valign='top' class='Estilo2'>B&uacute;squeda de Ofertas por Estado. </td>
               <
td valign='top' class='Estilo2'><div align="center">
                   <
select name="estado" id="estado"style="font-family: Tahoma; font-size: 9pt; border: 1px solid #F6BC36">
                     <
option [B]value="">[/B]Todos los Estados</option>
                     <
option value="Aguascalientes">Aguascalientes</option>
                     <
option value="Baja California">Baja California</option>
                     <
option value="Baja California Sur">Baja California Sur</option>
                     <
option value="Campeche">Campeche</option>
                     <
option value="Oaxaca">Oaxaca</option>
                     <
option value="Puebla">Puebla</option>
                     <
option value="Queretaro">Queretaro</option>
                     <
option value="Veracruz">Veracruz</option>
                     <
option value="Yucatan">Yucatan</option>
                     <
option value="Zacatecas">Zacatecas</option>
                    </
select>
                 &
nbsp;</div></td>
             </
tr>
             <
tr>
               <
td height='15' colspan='2' valign='middle' class='Estilo2'><br>
                 <
div align="center"><br>
                 <
input name="buscaedo" type="submit" class="Estilo2" id="buscaedo" style="color: #000000; font-family: Tahoma; font-size: 9pt; border: 1px outset #CCCCCC; background-color: #cccccc" value="Buscar">
               </
div></td>
             </
tr>
           </
table>
          </
form
ofertas_result.php
el código de consulta a la base de datos:

Código PHP:
<?
$tipo 
$_POST['tipo'];
$palabra $_POST['palabra'];
$sector $_POST['sector'];
$estado $_POST['estado'];

include (
"conectar.php");
mysql_select_db ("mi_base"$conectar);
//Sentencia sql (sin limit)
$_pagi_sql "SELECT * FROM mitabla WHERE tipo LIKE '$tipo' "
## se incluye la busqueda por palabra clave, si se ha introducido 
if(isset($_POST['palabra']) && !empty($_POST['palabra'])) { 
    
$_pagi_sql .= " AND producto LIKE '%".$_POST['palabra']."%' "

## se incluye la busqueda por sector, si se ha seleccionado 
if(isset($_POST['sector']) && !empty($_POST['sector'])) { 
    
$_pagi_sql .=" AND sector LIKE '".$_POST['sector']."' "

## se incluye la busqueda por estado, si se ha seleccioando 
if(isset($_POST['estado']) && !empty($_POST['estado'])) { 
    
$_pagi_sql .=" AND estado LIKE '".$_POST['estado']."' "

$_pagi_sql .=" ORDER BY producto";

etc,etc,etc.

?>
  #6 (permalink)  
Antiguo 29/03/2007, 13:21
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Re: Select no me ayuda a sacar el resultado que quiero

Hola Domy,

me alegro de que te diera resultado.
Para eso estamos, para intentar ayudar :)

saludos
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
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 12:00.