Foros del Web » Programando para Internet » PHP »

Ayuda con buscador

Estas en el tema de Ayuda con buscador en el foro de PHP en Foros del Web. Hola amigos , tengo un problema para mostrar una busqueda miren , la cosa es asi: me pagina todos los registros que tengo y no ...
  #1 (permalink)  
Antiguo 29/01/2009, 21:58
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Exclamación Ayuda con buscador

Hola amigos , tengo un problema para mostrar una busqueda miren , la cosa es asi:
me pagina todos los registros que tengo y no el que le ordeno que busque , bueno el que supongo que le ordeno porque al parecer no lo estoy haciendo bien XD
aca les dejo los ficheros:

BUSCAR.HTML

Código HTML:
<form name="formBuscar" style="margin: 0px; padding: 0px;" action="http://misitio.com/buscar/" method="POST" accept-charset="UTF-8"><center>
	<input type="text" name="busqueda" id="busqueda" size="30" class="ibuscador">&nbsp;<br><label id="errorss"></label></center></form> 

BUSCAR.PHP


Código PHP:




<?
# Funcion para conectar a la base de datos
function conectar($host,$user,$pass,$db){
$link = @mysql_connect($host,$user,$pass) or die("Error Conectando a la Base de datos");
@
mysql_select_db($db,$link) or die("Error Seleccionando base de datos.");
return 
$link;
}

$host "localhost";
$user "user";
$pass "pass";
$db "database";

# Se crea la variable $link que es para identificar la coneccion
# a la base de datos
$link conectar($host,$user,$pass,$db);

# aqui colocan la tabla que se utilizara para
# extraer los registros y paginarlos
$tabla "posts";

# aqui se extrae la cantidad de registros totales
$rsC mysql_query("Select count(*) from ".$tabla);
$resultC mysql_fetch_array($rsC);
$count $resultC[0];

# Aqui se pone la cantidad de registros por pagina
# que se quieren mostrar
$hasta 25;

if(
$pag==""){
 
$desde 0;
 
$pag 1;    
}
else{
 
$pag $_GET["pag"];
 
$pagS $pag 1;
 
$desde $hasta $pagS;    
}


$palabra $_POST[palabra];

$rs mysql_query("SELECT * FROM posts where match (nombre, mensaje) against (’$palabra’ in boolean mode)"); 
if(
$count!=0){ 
 while(
$result=mysql_fetch_array($rs)){ 
?>

<table border=0 cellpadding=0 cellspacing=0>
<tr>
<td onmouseover='this.style.background="[color=orangered]red[/color]"' onmouseout='this.style.background="[color=orangered]white[/color]"'>

<?
 

if($result[categoria]=="1")
{

echo
"&nbsp;&nbsp;";echo"&nbsp;&nbsp;";echo "<a href='posts/Descargas/".$result['nombre']."-".$result['id'].".html'>".$result['nombre']."</a><br>";  
         
}

if(
$result[categoria]=="5")

{

echo
"&nbsp;&nbsp;";echo"&nbsp;&nbsp;";echo "<a href='posts/Noticias/".$result['nombre']."-".$result['id'].".html'>".$result['nombre']."</a><br>";  

}
     
if(
$result[categoria]=="4")
{

echo
"&nbsp;&nbsp;";echo"&nbsp;&nbsp;";echo "<a href='posts/Juegos/".$result['nombre']."-".$result['id'].".html'>".$result['nombre']."</a><br></td>";


}
if(
$result[categoria]=="2")
{

echo
"&nbsp;&nbsp;";echo"&nbsp;&nbsp;";echo "<a href='posts/Cine/".$result['nombre']."-".$result['id'].".html'>".$result['nombre']."</a><br>";  

}

if(
$result[categoria]=="3")
{

echo
"&nbsp;&nbsp;";echo"&nbsp;&nbsp;";echo "<a href='posts/Ebooks y Libros/".$result['nombre']."-".$result['id'].".html'>".$result['nombre']."</a><br>";  

}

if(
$result[categoria]=="6")
{

"</br>";echo"&nbsp;&nbsp;";echo"&nbsp;&nbsp;";echo "<a href='posts/Musica/".$result['nombre']."-".$result['id'].".html'>".$result['nombre']."</a><br>";  

}
?>

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

<?

 


else{ 
 echo 
"";     
}  
mysql_close($link);

?>
</div>

<div class="windowbg" style="width:370px;padding:4px;margin-bottom:8px;margin-right:8px;font-size:12px;"><center><strong>
<?
# aqui se llama a la funcion que muestra los links por paginas
# la variable $extra_variables es para anexar mas variables al url
# si es necesario para los querys que hagan.
# Solo se debe concatenar los datos nombre1=valor1&nombre2=value2
# NOTA: puede ubicar en cualquier parte de su codigo esta funcion
# para que aparesca dentro de la celda que desee.
# link totales es una variable al ser definida le dices a la funcion
# cuantos links quieres que aparescan por pantalla ya que si tienes
# 100 paginas no deberas ver los 100 links y solo muestres los necesarios
$link_totales 4;
# se llama la funcion paginar
# los links si tiene un css podran tomar la estructura y color que le pongas
## Inicia Paginador
paginar($count,$hasta,$pag,$link_totales,$extra_variables);

# Funcion paginar
# Inicia




function paginar($count,$hasta,$pag,$link_totales,$extra_variables){
    if(
$link_totales==1)$link_totales=2;
    
$links $count $hasta;
    
$arriba $link_totales 2;
    
$abajo $pag 1;
    if(
$abajo==0)$abajo 1;
    
$temp_r $links $pag;
    if(
$temp_r>=$arriba){
     
$link_break $pag $arriba;
    }
    else{
     
$link_break $links;
     
$abajo $pag $arriba;
     if(
$pag==$links-1)$abajo $pag $arriba;
     if(
$pag==$links)$abajo $pag $arriba;
    }
    
    if(
$pag==1)$link_break $link_totales;
    if(
$abajo==0)$abajo=1;
    if(
strlen($extra_variables)!=0$extra_variables "&".$extra_variables;
    
    if(
$pag==1){
     
$anterior 1;    
    }
    else{
    
$anterior $pag 1;    
    }
    if(
$pag!=1){
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>";
    }
    
    for(
$i=$abajo;$i<=$links;$i++){
     if(
$link_break<$i){
      break;
     }
     else{
        if(
$pag==$i){
        echo 
$i." | ";    
        }
        else{
        echo 
"<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>";
        echo 
$i;
        echo 
" | </a>";
        }
     }
    }
    if(
$pag==$links){
    
$siguiente $links;
    }
    else{
    
$siguiente $pag 1;
    }
    if(
$pag!=$links){
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguiente >></a>";
    }
}
?>





PD: Me gustaria hacer una busqueda de mas de una palabra y que busque en el nombre y en el mensaje (cuerpo de la noticia).



espero que me puedan ayudar un abrazo
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #2 (permalink)  
Antiguo 29/01/2009, 22:11
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con buscador

Qué curioso...
Código HTML:
<input type="text" name="busqueda" ...> 
Código PHP:
$palabra $_POST[palabra]; 
Espero notes tu error
  #3 (permalink)  
Antiguo 29/01/2009, 22:20
 
Fecha de Ingreso: julio-2008
Mensajes: 140
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Ayuda con buscador

Buenas. Esto es mas de SQL que de PHP. Lo que podes hacer es un split del texto que ingreso.

Entonces por cada valor de la matriz crear una sentencia SQL de este modo:

- "(nombre like '%$palabra[i]%' or mensaje like '%$palabra[i]%') "

Y eso se vá concatenando. Espero no haberle pifiado, Saludos!
  #4 (permalink)  
Antiguo 29/01/2009, 22:31
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda con buscador

@Fueguino. Las búsquedas Fulltext (con match) son muy diferentes a las búsquedas LIKE. Te sugiero investigar al respecto

El error es el que puse en el mensaje anterior. El índice de $_POST empleado no coincide con el nombre del campo al que se supone se quiere asociar.

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 04:59.