Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/05/2007, 06:30
1pere3
 
Fecha de Ingreso: noviembre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
Buscador hacia la DB con 2 criterios

Hola a todos,

Estoy creando un buscador hacia mi base de datos de noticias deportivas.

Y he conseguido que funcione, pero no exactamente como desearia. Tienes para buscar por palabra y lo complementas con un select donde eliges el deporte.

El formulario de busqueda es así:

Código:
<form method="post" action="../busquedas/buscar.php">
      <p style="text-align: center"><input name="buscar" type="text" size="15" /></p>
      <p style="text-align: center"><select name="seccion">
            <option value="futbol">F&uacute;tbol</option>
            <option value="futbolsala">F&uacute;tbol Sala</option>
            <option value="ajedrez">Ajedrez</option>
            <option value="tenis">Tenis</option>
            <option value="motociclismo">Motor</option>
            <option value="voley">Voleibol</option>
            <option value="atletismo">Atletismo</option>
            <option value="ciclismo">Ciclismo</option>
            <option value="basket">Basket</option>
            <option value="natacion">nataci&oacute;n</option>
            <option value="tenisdemesa">Tenis de Mesa</option>
              <option value="deportes">Más Deporte</option>
            </select>
      </p>
      <p style="text-align: center"><input class="buscadorboton" type="submit" value="Buscar" /></p>
      </form>
Tenemos el input name= buscar y el select name= seccion

Ahora en el buscar.php:

Código:
<?php 

$buscar=$HTTP_POST_VARS['buscar'];
$seccion=$HTTP_POST_VARS['seccion'];

$buscar= trim($buscar);

if (!$buscar || !$seccion)
{ 


exit; 

} 

$buscar = addslashes($buscar);
$seccion = addslashes($seccion);


@ $db = mysql_connect("localhost", "xxxx", "xxxx"); 

if (!$db)

{
   echo 'Error de conexión a la base de datos. Vuelva a intentarlo más tarde';
   exit;
	}

mysql_select_db("xxxxx"); 

$query = "SELECT id,titulo,descripcion,file,seccion,DATE_FORMAT(fecha,\"%d/%m/%Y\") as fecha FROM noticias WHERE titulo LIKE '%$buscar%' OR descripcion LIKE '%$buscar%' AND seccion = '%$seccion%' ORDER BY fecha"; 

$result = mysql_query($query); 

$num_results = mysql_num_rows($result);

	
	?>
	

echo '<h2>Número de resultados: '.$num_results.'</h2>';

for ($i=0; $i <$num_results; $i++)
{

$row = mysql_fetch_array($result);

echo '<p style="color:#EE3439; text-align:justify; padding:5px 5px 0 5px; font-size:14px; font-weight:bold;">';
?>
<img src="../images/noticias/<?php echo $row['file']; ?>" style="float:left; margin-right:5px; border:2px solid #717370;" width="100" height="100"/>
<?
echo '(';
echo stripslashes($row['fecha']);
echo ') ';
echo htmlspecialchars(stripslashes($row['titulo']));
echo '</p><p style="color:#747273; text-align:justify; padding:5px;">';
echo stripslashes($row['descripcion']);
echo '</p></h1>';
}

?>

El caso es que buscar, busca y encuentra pero pasa tres pueblos del deporte que elijas en el select.

Quiero que como palabra busque en el TITULO o la DESCRIPCION de la base de datos. y del campo SECCION el deporte.

Alguien ve, en que estoy errando?

Es mi primer buscador y estoy contento de que me haya salido pero no veo este fallo.

Gracias!