Foros del Web » Programando para Internet » PHP »

definir busqueda

Estas en el tema de definir busqueda en el foro de PHP en Foros del Web. Hola he estado viendo muchos temas al respecto pero ninguno me ha aclarado mi duda. En mi BD tengo muchos campos como descripciones, ID, nombres, ...
  #1 (permalink)  
Antiguo 11/01/2007, 14:45
 
Fecha de Ingreso: abril-2003
Ubicación: Guatemala
Mensajes: 93
Antigüedad: 21 años, 1 mes
Puntos: 1
definir busqueda

Hola he estado viendo muchos temas al respecto pero ninguno me ha aclarado mi duda.

En mi BD tengo muchos campos como descripciones, ID, nombres, apellidos, categorias, etc...

Bueno tengo un formulario con 2 listas... y un campo para texto.

FORMULARIO ASI:

1) lista 1 (cosa)
Venta
Alquiler
Proyectos

2) Lista 2 (cosa1)
0
1
2

3) Texto (avanzado)

Mi html es asi:

Código HTML:
<form enctype="multipart/form-data" method="post" action="listar_a.php" name="frm" id="formulario">
        <table width="10%" height="108" align="center">
          <tr>
            <td height="34">
              <div align="center" class="style32 style33">
                <div align="left"><span class="style34">En</span>: </div>
              </div></td>
            <td colspan="2"><select name="cosa" class="style32" onchange="cambia(document.frm.cosa1)">
                <option selected>Venta</option>
                <option>Alquiler</option>
                <option>Proyectos</option>
            </select></td>
          </tr>
          <tr>
            <td height="26">
              <div align="center" class="style32">
                <div align="left"><font size="2" face="Arial, Helvetica, sans-serif">Tipo</font><font size="2" face="Arial, Helvetica, sans-serif"></font><font size="2" face="Arial, Helvetica, sans-serif">:</font> </div>
              </div></td>
            <td height="26" colspan="2"><select name="cosa1" class="style32">
                <option value="0">Casas</option>
                <option value="1">Apartamentos</option>
                <option value="2">Oficinas</option>
                <option value="3">Locales</option>
                <option value="4">Bodegas</option>
                <option value="5">Terrenos</option>
            </select></td>
          </tr>
          <tr>
            <td height="26"><span class="style32">Buscar:</span></td>
            <td height="26"><INPUT NAME="avanzado" TYPE="text" class="style32"  SIZE="25" MAXLENGTH="25"></td>
            <td><input name="Busqueda" type="submit" class="style32" id="Busqueda" onclick="comprueba()" value="Busqueda"></td>
          </tr>
        </table>
</form> 
hago mi consulta asi

Código PHP:
$conn mysql_connect("localhost","",""); 
mysql_select_db("",$conn); 
$ssql "SELECT * FROM Inmuebles WHERE anun = '$cosa' AND categoria ='$cosa1' AND descripcion_c LIKE '%$avanzado%'";

$rs mysql_query($ssql,$conn) or die ("No se puede ejecutar la consulta"); 
$num_total_registros mysql_num_rows($rs); 
Lo que quiero es que cuando encuentre anun, encuentre categoria y en base a esos 2 campos encontrados en la tabla que busque en el resto de campos la variable $avanzado. pero solo los que contengan anun y categoria dichas.

Probe con OR y con AND pero no me sirve...
seria algo asi como esto (descripcion_c, descripcion_d, titulo, nombre, id, ubicacion) LIKE %$avanzado%'

Espero haberme explicado bien.. pero llevo ya unos cuantos dias en esto y por mas que trato no logro nada

Gracias espero que alguien pueda explicarmelo.

Sicuesn
  #2 (permalink)  
Antiguo 11/01/2007, 15:21
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 17 años, 10 meses
Puntos: 1
Re: definir busqueda

Cita:
Iniciado por sicuesn Ver Mensaje
Hola he estado viendo muchos temas al respecto pero ninguno me ha aclarado mi duda.

En mi BD tengo muchos campos como descripciones, ID, nombres, apellidos, categorias, etc...

Bueno tengo un formulario con 2 listas... y un campo para texto.

FORMULARIO ASI:

1) lista 1 (cosa)
Venta
Alquiler
Proyectos

2) Lista 2 (cosa1)
0
1
2

3) Texto (avanzado)

Mi html es asi:

Código HTML:
<form enctype="multipart/form-data" method="post" action="listar_a.php" name="frm" id="formulario">
        <table width="10%" height="108" align="center">
          <tr>
            <td height="34">
              <div align="center" class="style32 style33">
                <div align="left"><span class="style34">En</span>: </div>
              </div></td>
            <td colspan="2"><select name="cosa" class="style32" onchange="cambia(document.frm.cosa1)">
                <option selected>Venta</option>
                <option>Alquiler</option>
                <option>Proyectos</option>
            </select></td>
          </tr>
          <tr>
            <td height="26">
              <div align="center" class="style32">
                <div align="left"><font size="2" face="Arial, Helvetica, sans-serif">Tipo</font><font size="2" face="Arial, Helvetica, sans-serif"></font><font size="2" face="Arial, Helvetica, sans-serif">:</font> </div>
              </div></td>
            <td height="26" colspan="2"><select name="cosa1" class="style32">
                <option value="0">Casas</option>
                <option value="1">Apartamentos</option>
                <option value="2">Oficinas</option>
                <option value="3">Locales</option>
                <option value="4">Bodegas</option>
                <option value="5">Terrenos</option>
            </select></td>
          </tr>
          <tr>
            <td height="26"><span class="style32">Buscar:</span></td>
            <td height="26"><INPUT NAME="avanzado" TYPE="text" class="style32"  SIZE="25" MAXLENGTH="25"></td>
            <td><input name="Busqueda" type="submit" class="style32" id="Busqueda" onclick="comprueba()" value="Busqueda"></td>
          </tr>
        </table>
</form> 
hago mi consulta asi

Código PHP:
$conn mysql_connect("localhost","",""); 
mysql_select_db("",$conn); 
$ssql "SELECT * FROM Inmuebles WHERE anun = '$cosa' AND categoria ='$cosa1' AND descripcion_c LIKE '%$avanzado%'";

$rs mysql_query($ssql,$conn) or die ("No se puede ejecutar la consulta"); 
$num_total_registros mysql_num_rows($rs); 
Lo que quiero es que cuando encuentre anun, encuentre categoria y en base a esos 2 campos encontrados en la tabla que busque en el resto de campos la variable $avanzado. pero solo los que contengan anun y categoria dichas.

Probe con OR y con AND pero no me sirve...
seria algo asi como esto (descripcion_c, descripcion_d, titulo, nombre, id, ubicacion) LIKE %$avanzado%'

Espero haberme explicado bien.. pero llevo ya unos cuantos dias en esto y por mas que trato no logro nada

Gracias espero que alguien pueda explicarmelo.

Sicuesn
Pruebate este, que a mi me funciona

Código PHP:
if ($_GET[modo]=='b')           {
    
$sql  " select * from disco, categoria, interprete, sello";
    
$sql .= " where disco.cod_cat = categoria.cod_cat";
    
$sql .= " and disco.cod_i = interprete.cod_i";
    
$sql .= " and disco.cod_s = sello.cod_s";
    
    if (
$_POST[subbuscar])  {
        if (
$_POST[txtpc])  {
            
$sql .= " and ";
            
$sql .= " ( categoria.desc_cat like '%$_POST[txtpc]%' or";
            
$sql .= " interprete.desc_i like '%$_POST[txtpc]%' or ";
            
$sql .= " sello.desc_s like '%$_POST[txtpc]%' or ";
            
$sql .= " disco.precio_d like '%$_POST[txtpc]%' or ";
            
$sql .= " disco.nom_d like '%$_POST[txtpc]%' ";
            
$sql .= " )";
        } 
  #3 (permalink)  
Antiguo 11/01/2007, 16:51
 
Fecha de Ingreso: abril-2003
Ubicación: Guatemala
Mensajes: 93
Antigüedad: 21 años, 1 mes
Puntos: 1
Re: definir busqueda

Hola gracias por la pronta respuesta...
Se me olvido mencionar que no soy muy experto en php.

segun veo esto seria si tuviera varias tablas? yo solo tengo una tabla, de la cual si categoria es 0 y anun es Venta que busque en esos campos la variable avanzado.
no se como explicarte...

algo como esto

Código PHP:
$esoes= array('descipcion_c''descripcion_d');
$sql "SELECT * FROM Inmuebles
        WHERE anun ='$cosa'
        AND categoria ='$cosa1' 
        AND $esoes like '%$avanzado%'
        "


Última edición por sicuesn; 11/01/2007 a las 21:04
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:27.