Foros del Web » Programando para Internet » PHP »

Duda con busqueda?

Estas en el tema de Duda con busqueda? en el foro de PHP en Foros del Web. Estoy tratando de hacer una busqueda en una Base de Datos pero tengo que hacerlo siguiendo varios criterios de busqueda. Por ejemplo este compara el ...
  #1 (permalink)  
Antiguo 24/06/2003, 23:53
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Duda con busqueda?

Estoy tratando de hacer una busqueda en una Base de Datos pero tengo que hacerlo siguiendo varios criterios de busqueda. Por ejemplo este compara el valor de el edit llamado $query con el campo familia de la tabla, pero tengo otros dos criterios por ejemplo dos edit mas edit 1 y edit2 pero no se como ponerlos a comparar en la misma consulta.
Código PHP:
<?php
echo "<html><title>.:Resultados de la Búsqueda:.</title><body <body background=\"img/bg.gif\">";
echo 
"</body></html>";
mysql_connect("localhost");
mysql_select_db("bdplantas");
switch (
$_POST['opciones'] ) {
    case 
"anticancerigena":
        
$result mysql_query("SELECT * FROM anticancerigenas WHERE familia LIKE '$query'  ORDER by id");
         while (
$row=mysql_fetch_assoc($result))
          {
            echo 
"<font face=\"Tahoma\" size=\"2\">Familia:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['familia']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Nombre Científico:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['nombre_cientifico']."</font>";
             echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Nombre Común:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['nombre_comun']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Tipos de Cáncer:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['tipos_cancer']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Parte de la Planta Empleada:</font>";
             echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['parte_plan_emple']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Preparación:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['preparacion']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Tipo de Estudio:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['tipo_est']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Metabólitos responsables de la acción:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['met_resp_act']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Referencia:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['ref']."</font>";
            echo 
"<br>";
            echo 
"--------------------------------------------------";
            echo 
"--------------------------------------------------";
            echo 
"--------------------------------------------------";
           }
           
mysql_free_result($result);
        break;
        case 
"hipoglicemiante":
        
$result mysql_query("SELECT * FROM hipoglicemiante WHERE familia LIKE '$query'  ORDER by id");
         while (
$row=mysql_fetch_assoc($result))
          {
            echo 
"<font face=\"Tahoma\" size=\"2\">Familia:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['familia']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Nombre Científico:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['nombre_cientifico']."</font>";
             echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Nombre Común:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['nombre_comun']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Parte de la Planta Empleada:</font>";
             echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['parte_plan_emple']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Preparación:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['preparacion']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Tipo de Estudio:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['tipo_est']."</font>";
            echo 
"<br>";
            echo 
"<font face=\"Tahoma\" size=\"2\">Metabólitos responsables de la acción:</font>";
            echo 
"&nbsp;";
            echo 
"<font face=\"Tahoma\" size=\"2\">".$row['met_resp_act']."</font>";
            echo 
"<br>";
            echo 
"--------------------------------------------------";
            echo 
"--------------------------------------------------";
            echo 
"--------------------------------------------------";
          }
          
mysql_free_result($result);
        break;
    default:
    die(
"No puedo adicionar nada a la BD");
 }
?>
Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 25/06/2003, 00:02
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
No entendi muy bien, pero creo que debes usar AND para añadir condicines...
Código:
SELECT * FROM anticancerigenas WHERE familia LIKE '$query1' AND familia LIKE '$query2' ORDER by id
¿es eso?, perdon si le erré feo.
Saludos!
  #3 (permalink)  
Antiguo 25/06/2003, 02:01
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Duda con busqueda?

Ya hice lo que me dijeron pero me muestra lo que le da la gana y no tiene que ver con lo que mando a buscar. Además como puedo hacer para que el usuario no tenga que entrar la palabra completa sino solamente 4 o 5 letras y que me compare con las palabras que sus 4 o 5 letras primeras coincidan con la de la busqueda. ¿Qué puedo hacer al respecto?
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 25/06/2003, 02:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
(¿se supone que tu última acotación en un mensaje nuevo era referente a este mensaje? .. bueno, supongo que sí .. así que los junté para que no se pierda el hilo de la conversación).

Para lo ue dices de que méta X letras de una palabra .. usa los "Willcards" (comodines) .. en la sentencia SQL LIKE. En Msyql es el % ...

LIKE '%$query%'

Yo te recomendaría que te pases por www.mysql.com/doc y te leas la sintax de uso de SELECT .. y en general que estudies el lenguaje SQL particular de Mysql ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 23:41.