Foros del Web » Programando para Internet » PHP »

Estoy confundido BUSCADOR.

Estas en el tema de Estoy confundido BUSCADOR. en el foro de PHP en Foros del Web. Amigos estoy leyendo varias temas de buscadores y la idea es q estoy realizando un buscador de opcioones avanzadas con el del foro. Lo que ...
  #1 (permalink)  
Antiguo 03/11/2009, 08:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Estoy confundido BUSCADOR.

Amigos estoy leyendo varias temas de buscadores y la idea es q estoy realizando un buscador de opcioones avanzadas con el del foro. Lo que no entiendo es que en la mayoria de los buscadores solo llega al script php una cosa asi:
Código php:
Ver original
  1. $q = $_POST['busquedasoft ']
  2.  
  3. $sqlStr = "SELECT * FROM tu_tabla WHERE (nombre LIKE '%$q%') OR (titulo LIKE %$q%') OR (descripcion LIKE '%$q%') OR (licencia LIKE '%$q%')";

Pero que pasa si yo tengo varias opciones en mi html de busqueda asi:
Código php:
Ver original
  1. <td style="color:#000000">Nombres:</td>
  2.     <td align="left"><input type="text" size="50"  name="nombre" value="<?php echo $_SESSION['nombre'] ?>" ></td>
  3.     </tr>
  4.     <tr>
  5.     <td>Apellido Paterno:</td>
  6.     <td align="left"><input type="text" size="50"  name="paterno" value="<?php echo $_SESSION['paterno'] ?>" ></td>
  7.     </tr>
  8.     <tr>
  9.     <td>Apellido Materno:</td>
  10.     <td align="left"><input type="text" size="50"  name="materno" value="<?php echo $_SESSION['materno'] ?>" ></td>
  11.     </tr>
  12.     <tr valign="top">
  13.     <td align="left" colspan="2">
  14.     <fieldset>
  15.     <legend style="color: #FF0000;">Datos Especificos..</legend>
  16.     <div style="padding:3px" align="left" >
  17.     Nº Registro:<input type="text" size="10"  name="registro_fbf" value="<?php echo $_SESSION['registro_fbf'] ?>" >
  18.     CI:<input type="text" name="ci" size="10" maxlength="7" onKeyPress="return validar_num(event)" value="<?php if (isset($_SESSION['ci'])){ echo $_SESSION['ci']; } ?>"/>
  19.     Edad:
  20.     <input type="text" name="edad" size="5" maxlength="2" onKeyPress="return validar_num(event)" value="<?php if (isset($_SESSION['edad'])){ echo $_SESSION['edad']; } ?>"/>
  21.    
  22.     Fecha Nac:
  23.     <input type="text" name="fecha_n" size="15" maxlength="10"  value="<?php if (isset($_SESSION['fecha_n'])){ echo $_SESSION['fecha_n']; } ?>"/>Ejm: D/M/A
  24.    
  25.     </div>
  26.     </fieldset>
  27.    
  28.         </td>
  29.  
  30.     </tr>

A todos los input debo llamarlos con el mismo nombre $q = $_POST['busquedasoft '] para q en mi consulta busque con el LIKE

Les agradeceria mucho sugerencias
  #2 (permalink)  
Antiguo 03/11/2009, 08:24
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Estoy confundido BUSCADOR.

Hola

Like es un operador

Lo que has de hacer es recoger cada valor en una variable distinta y después enfrentar a los campos de la bd con las variables

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 03/11/2009, 09:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 281
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Estoy confundido BUSCADOR.

Hice esto:
Código php:
Ver original
  1. $nombre = $_POST['nombre'];
  2.         $paterno = $_POST['paterno'];  
  3.         $materno = $_POST['materno'];  
  4.         $registro_fbf = $_POST['registro_fbf'];    
  5.         $ci = $_POST['ci'];    
  6.         $edad = $_POST['edad'];    
  7.         $fecha_n = $_POST['fecha_n'];  
  8.         $categoria = $_POST['categoria'];  
  9.         $club = $_POST['club'];    
  10.         $estado = $_POST['estado'];
  11.         $lugar_n = $_POST['lugar_n'];
  12.         $nacionalidad = $_POST['nacionalidad'];
  13. $paging->agregarConsulta( "SELECT *, MATCH ( id,nombre,paterno,materno,registro_fbf) AGAINST ('$nombre','$paterno','$materno','$registro_fbf') AS Score FROM jugadores WHERE  MATCH (id,nombre,paterno,materno,registro_fbf) AGAINST ('$nombre','$paterno','$materno','registro_fbf' IN BOOLEAN MODE)  ORDER BY id DESC",$server_link);

Es asi como debe de ser.???
Hice la prueba pero no es muy exacto mi buscador con datos concretos me vota 20 o 30 que nada tienen q ver con el dato buscado ??
  #4 (permalink)  
Antiguo 03/11/2009, 12:37
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Estoy confundido BUSCADOR.

Hola

Es otra manera, solo que has de tener en cuenta que match es más útil y eficiente cuando se buscan varias palabras, así que en tu caso es mas aconsejable usar like

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 00:33.