Foros del Web » Programando para Internet » PHP »

variale con distintos valores

Estas en el tema de variale con distintos valores en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/06/2010, 03:57
 
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 =)
  #2 (permalink)  
Antiguo 15/06/2010, 06:19
 
Fecha de Ingreso: abril-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: variale con distintos valores

Por qué no utilizas una sola consulta que sea "SELECT..... WHERE titulo='XXX' OR noticia='YYY'"?
  #3 (permalink)  
Antiguo 15/06/2010, 06:28
 
Fecha de Ingreso: noviembre-2009
Mensajes: 76
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: variale con distintos valores

Código:
$consultatit=mysql_query("select * from noticias where titulo like '%".$_POST['textoabuscar']."%'" or noticia like '%".$_POST['textoabuscar']."%'",$conexion);
Prueba con una consulta que tenga 2 condiciones.
  #4 (permalink)  
Antiguo 15/06/2010, 11:31
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Respuesta: variale con distintos valores

mmm... cierto no lo abia pensado jajaja lo probare que seguro que funciona, pero de la forma que explico mas arriba tambien se podria hacer? gracias a los dos!

Etiquetas: distintos
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 11:56.