Temas > Programacion > Php > Buscador para nuestra pagina
Julio

Este buscador esta diseñado para que trabaje con una base de datos.
Primero crearemos un fichero donde pondremos nuestro form:
por ej. index.php

<form name="buscar" action="buscador.php" method="post">  
      <font face=`Ubuntu,sans-serif` size=`2` color="white"> Buscar:
</font><input    style="font-size:11px; margin:0px;" class="buscar"
type="text" size="28" maxlength="50" value="<?php echo $_POST[`frase`]?>"
name="frase" />
   <input style="width:30px;height:22px;" type="submit" name="buscar"
value="?" />
</form>

luego crearemos otro que se llamara buscador.php que es donde haremos
nuestra select y el que nos mostrara si hemos encontrado la frase buscada.

<?php
$bdservidor = "localhost";//dominio o url de nuestro servidor de bd
$bdunombre = "nombre";//nombre con el cual hacemos nos conectamos a la bd
$bdpass = "contraseña";//contraseña de conexión
$bdnombre = "bd";//nombre de nuestra bd
$conexion=mysql_connect("$bdservidor","$bdunombre","$bdpass");
$db=mysql_select_db("$bdnombre",$conexion);

$frase = addslashes($_POST[`frase`]);//es la variable que va a recibir
//nuestra frase
    $piesasfrase = explode(" ", $frase);
    $tamanofrase = sizeof($piesasfrase); 
    // hacemos la consulta de busqueda
    // ver explicación mas abajo
    //Creamos una tabla que se llama Tema con los campos titulo y
//contenido.
   //tendremos que crearle un indice full text a los campos donde busquemos
//nuestra frase

//ALTER TABLE Tema ADD FULLTEXT combinado(Titulo,Contenido); esto deberemos
//de ponerlo por consola en nuestra bd sql
 
    $sqlBuscar = mysql_query("SELECT Titulo, Contenido, 
                            MATCH (Titulo, Contenido)
                            AGAINST (`$frase` IN BOOLEAN MODE) AS
coincidencias
                            FROM Tema WHERE MATCH (Titulo, Contenido)
                            AGAINST (`$frase` IN BOOLEAN MODE)
                            ORDER BY coincidencias DESC", $conexion);
    $totalRows = mysql_num_rows($sqlBuscar);
    // Enviamos un mensaje
    // indicando la cantidad de resultados ($totalRows)
    // para la frase busada ($frase)
    if(!empty($totalRows)) {
        $total=$totalRows;
        echo stripslashes("<p>Su b&uacute;squeda arroj&oacute;
<strong>$total</strong> resultados para <strong>$frase</strong></p><br>");
        // mostramos los resultados
            $t=0;
            $m=0;
        for($i=0;$i<$total;$i++){
            $row = mysql_fetch_array($sqlBuscar);
            if(round($row[`coincidencias`])){
            ?>Titulo del tema: <font size=4 color="blue"
face=`Ubuntu,sans-serif`><?php echo $row[`Titulo`]." ";?></font>
(Coincidencias: <?php echo round($row[`coincidencias`]) .")<br>";
            $pieces = explode(" ", $row[`Contenido`]);
            $tamano = sizeof($pieces);
            for($j=0;$j<$tamano;$j++){
            $a=1;
            for($k=0;$k<$tamanofrase;$k++){
            if (strcasecmp($pieces[$j], $piesasfrase[$k]) == 0) {
            $a=0; 
            break;}
            else { $a=1; 
            }
            }
            if($a==0) { echo "<strong><b><u> $pieces[$j]
</u></b></strong>"; }
            else { echo " $pieces[$j] "; }
}
            ?><br><br><?php          
            $m=$m+1;
            mysql_data_seek($sqlBusca,$t);
            
        }
    }
    }
    // si se ha enviado vacio el formulario
    // mostramos un mensaje del tipo Oops...!
    elseif(empty($_POST[`frase`])){
        echo "Debe introducir una palabra o frase.";
    }
    // si no hay resultados //
    //otro mensaje del tipo Oops...!
    elseif($totalRows == 0 and $totalRowss == 0){
        echo stripslashes("Su busqueda no arrojo resultados para
<strong>$frase</strong>");
    
}
else echo stripslashes("Su busqueda no arrojo resultados");
?>
Con esto cerraríamos nuestro fichero buscar.php, al ingresar una frase en
nuestro form debería buscarla y si esta mostrarla en caso contrario lanzar
una mensaje como que no ha encontrado nuestra frase.













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal