Vereis hoy me ha surgido otro problemilla (soy bastante noob xD), estoy haciendo un buscador para mi web (busca las noticias en una base de datos), en un campo tipo texto se introduce una cadena de texto y lo busca mediante un select en la base de datos, pero lo busca en el campo titulo y tambien en el campo cuerpo (el cuerpo de la noticia).
Lo que pasa es que si la cadena a buscar aparece tanto en el titulo como en el cuerpo de la noticia, me pone que ha encontrado dos resultados y me pone dos veces la misma noticia.
Os dejo el codigo para que le echeis un vistazo:
Código PHP:
<?php
session_start();
?>
<head>
<link rel="stylesheet" href="estilo.css">
<div id="head">
<title>Colegio Oficial de Farmacéuticos de Jaén</title>
</div>
<script languaje="JavaScript">
function valida(){
if(document.buscarnot.textoabuscar.value==""){
alert("Debes introducir como minimo una palabra en el campo de texto para comenzar la busqueda");
}
else{
document.buscarnot.submit();
}
}
</script>
</head>
<body>
<div id="content">
<div id="cuerpo">
<?
if($_POST['textoabuscar']==""){?>
<form name="buscarnot" action="" method="POST">
Buscar por: <input name="textoabuscar">
<input type="button" onClick="valida()" value="Buscar">
</form>
<?
}
else{
if($_SESSION['usuario']==""){
include("conexion_mysql.inc");
$conexion=mysql_connect($mysql_server,$mysql_login,$mysql_pass) or die ("Error en la conexion");
mysql_select_db("proyecto",$conexion);
$consultatit=mysql_query("select * from noticias where titulo like '%".$_POST['textoabuscar']."%' and privada=0",$conexion);
$consultanot=mysql_query("select * from noticias where noticia like '%".$_POST['textoabuscar']."%' and privada=0",$conexion);
$filas=mysql_num_rows($consultatit);
$filas1=mysql_num_rows($consultanot);
if(($filas==0) && ($filas1==0)){
echo "No se encontraron resultados";
}
else{
echo "<center>";
echo "<table class='noticias'>";
echo "<tr>";
echo "<td>";
echo "Encontradas ".$filas." noticias que contienen '".$_POST['textoabuscar']."' en el titulo.";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "<center>";
echo "<table class='noticias'>";
echo "<tr>";
echo "<td>";
echo "Encontradas ".$filas1." noticias que contienen '".$_POST['textoabuscar']."' en el cuerpo de la noticia.";
echo "</td>";
echo "</tr>";
echo "</table>";
while($filatit=mysql_fetch_row ($consultatit)){
?>
<center>
<table class="noticias">
<tr>
<td><center><h2><?php echo $filatit[0]; ?></h2></center></td>
</tr>
<tr>
<td>
<a href='noticias.php?<?php echo session_name()."=".session_id()?>¬icia=<? echo $filatit[13]?>' class="enlacesubnoticia"> <? echo $filatit[2] ?></a>
<?php
echo "<br>";
echo "<br>";
?>
</td>
</tr>
<tr>
</td>
</tr>
</table>
<?php
}
while($filanot=mysql_fetch_row ($consultanot)){
?>
<center>
<table class="noticias">
<tr>
<td><center><h2><?php echo $filanot[0]; ?></h2></center></td>
</tr>
<tr>
<td>
<a href='noticias.php?<?php echo session_name()."=".session_id()?>¬icia=<? echo $filanot[13]?>' class="enlacesubnoticia"> <? echo $filanot[2] ?></a>
<?php
echo "<br>";
echo "<br>";
?>
</td>
</tr>
<tr>
</td>
</tr>
</table>
<?php
}
}
echo "</div>";
}
else{
include("conexion_mysql.inc");
$conexion=mysql_connect($mysql_server,$mysql_login,$mysql_pass) or die ("Error en la conexion");
mysql_select_db("proyecto",$conexion);
$consultatit=mysql_query("select * from noticias where titulo like '%".$_POST['textoabuscar']."%'",$conexion);
while($filatit=mysql_fetch_row ($consultatit)){
?>
<center>
<table class="noticias">
<tr>
<td><center><h2><?php echo $filatit[0]; ?></h2></center></td>
</tr>
<tr>
<td>
<a href='noticias.php?<?php echo session_name()."=".session_id()?>¬icia=<? echo $filatit[13]?>' class="enlacesubnoticia"> <? echo $filatit[2] ?></a>
<?php
echo "<br>";
echo "<br>";
?>
</td>
</tr>
<tr>
</td>
</tr>
</table>
<?php
}
echo "</div>";
}
}
Os agradezco la ayuda asi como ideas de como hacer mejor el buscador o algo =)