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
      1
2345678
9101112131415
16171819202122
23242526 272829
30      

Viernes 27 de Junio 2025
Semana 26

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