Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/06/2010, 03:57
mysterio069
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
variale con distintos valores

Hola de nuevo!

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&eacute;uticos de Ja&eacute;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()?>&noticia=<? 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()?>&noticia=<? 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()?>&noticia=<? echo $filatit[13]?>' class="enlacesubnoticia"> <? echo $filatit[2?></a>
<?php
echo "<br>";
echo 
"<br>";

?>

</td>
</tr>
<tr>
</td>
</tr>
</table>

<?php


}

echo 
"</div>";
}
}
Como veis son dos select distintos, lo que habia pensado es poner una variable que guarde el cod_noticia de las noticias que muestra en el primer bucle, y que en el segundo bucle mire la variable y si el cod_noticia no esta, que muestre la noticia y si esta, que no la muestre (porque ya la habria mostrado el bucle anterior), el caso es que no se como hacer esto xD

Os agradezco la ayuda asi como ideas de como hacer mejor el buscador o algo =)