Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/10/2004, 20:37
Avatar de Reynier
Reynier
 
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Buscador ayuda

Bueno ahora la tarea es nueva totalmente. Estoy implementando un buscador para mi sitio. Este es el formulario de busqueda:
Código HTML:
<form action='busqueda.php' method='post' name='search' id='search'>
<table width='100%'  border='0' cellspacing='1' cellpadding='0' class='table'>
 <tr>
  <td colspan='2' class='padding font topics tr bold'>Buscar en TinoGRM ...  </td>
</tr>
<tr> 
 <td width='20%' class='padding font' align='right'>Palabra o Frase: </td>
 <td width='80%'><input type='text' name='searchkey' id='searchkey' size='100' class='edit font'></td>
</tr>
<tr>
 <td class='padding font' align='right'>Buscar en: </td>
 <td>
  <select name='searchin' id='searchin' class='td font edit'>
   <option value='0' selected>Seleccionar ...</option>
   <option value='1'>Cursos</option>
   <option value='2'>Descargas</option>
   <option value='3'>Noticias</option>  
   <option value='4'>Foros de Discusión</option>
   <option value='5'>Libro de Visitas</option>
   <option value='6'>Directorio Electrónico</option>
   <option value='7'>Directorio de Sitios</option>
  </select>
 </td>
</tr>
<tr>
 <td class='padding font' align='right'>Marcar si desea buscar en el sitio entero: </td>
 <td><input name='allsite' type='checkbox' id='allsite' value='1' onclick=\"javascript:document.search.searchin.disabled = this.checked\"></td>
</tr>
<tr>
 <td class='padding font' align='right'>Resultados por página: </td>
 <td>
  <select name='resultperpage' id='resultperpage' class='edit font td'>
   <option value='5'>5</option>
   <option value='10'>10</option>
   <option value='15'>15</option>
   <option value='20'>20</option>
  </select>
 </td>
</tr>
<tr>
 <td class='padding font' align='center' colspan='2'><input type='submit' name='dosearch' value='Buscar ...' class='edit font'></td>
</tr>
</table>
</form> 
este es el archivo busqueda.php (sin terminar aún)
Código PHP:
<?php
 $arr_tables 
= array("jcgrm_cursos","jcgrm_descargas","jcgrm_noticias","jcgrm_preguntas","jcgrm_libro_de_visitas","jcgrm_directorio_electronico","jcgrm_directorio");
 
$pos $_POST['searchin']-1;
 
$tables $arr_tables[$pos];
 
$query "SELECT * FROM ".$tables." ";
 switch(
$pos){
  case 
0:
   
$query.= "WHERE titulo LIKE '%".$_POST['searchkey']."%'";
  break;
  case 
1:
   
$query.= "WHERE (titulo LIKE '%".$_POST['searchkey']."%') || (descripcion LIKE '%".$_POST['searchkey']."%') || (tamano LIKE '%".$_POST['searchkey']."%') || (direccion LIKE '%".$_POST['searchkey']."%')";
  break;
  case 
2:
   
$query.= "WHERE (titulo LIKE '%".$_POST['searchkey']."%') || (resumen LIKE '%".$_POST['searchkey']."%') || (ampliacion LIKE '%".$_POST['searchkey']."%') || (autor LIKE '%".$_POST['searchkey']."%') || (referencia LIKE '%".$_POST['searchkey']."%') || (fecha_publicacion LIKE '%".$_POST['searchkey']."%')";
  break;
  case 
3:
   
$query.= "WHERE (nick LIKE '%".$_POST['searchkey']."%') || (asunto LIKE '%".$_POST['searchkey']."%') || (mensaje LIKE '%".$_POST['searchkey']."%') || (fecha LIKE '%".$_POST['searchkey']."%')";
  break;
  case 
4:
   
$query.= "WHERE (fecha LIKE '%".$_POST['searchkey']."%') || (nick LIKE '%".$_POST['searchkey']."%') || (pais LIKE '%".$_POST['searchkey']."%') || (comentarios LIKE '%".$_POST['searchkey']."%')";
  break;
  case 
5:
   
$query.= "WHERE (texto LIKE '%".$_POST['searchkey']."%') || ";
  break;
  case 
6:
   
$query.= "WHERE (titulo LIKE '%".$_POST['searchkey']."%') || (descripcion LIKE '%".$_POST['searchkey']."%') || (direccion LIKE '%".$_POST['searchkey']."%')";
  break;
 }
 echo 
$query;
?>
ahora tengo varias dudas que quiero me recomienden algo al respecto o me ayuden. La primera es que si el usuario marca el checkbox para realizar la búsqueda en todas las tablas del arreglo como haría entonces la consulta. La segunda duda es cuando el usuario seleccione Foro de Discusion en la opcion de "buscar en" el sistema debería encargarse de buscar en las tablas tanto de preguntas como de respuestas, pero si se han dado cuenta solo he puesto jcgrm_preguntas porque no se como hacer para poner en el arreglo esas dos tablas y construir la consulta luego. La otra duda que tengo por ahora es como construir los enlaces despues de realizada la busqueda en dependencia de la tabla o tablas donde se halla encontrado la información.
Eso es todo por ahora pero seguiré preguntando un poco por acá hasta tanto no haya terminado mi buscador.

Salu2
__________________
Ing. Reynier Pérez Mira