Ver Mensaje Individual
  #19 (permalink)  
Antiguo 09/01/2009, 12:36
Avatar de Dragon_Mandarin
Dragon_Mandarin
 
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 14
Sonrisa Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Amigo,

Tampoco soy experto en php, apenas un novato. Pero mira, la cosa es muy simple: crea una sola página -por ejemplo, buscador.php- y pones de una sola vez todo el código desarrollado por Roger. Mira, el asunto queda así:

Código PHP:
<?php
// conectar al servidor
$server_link mysql_connect("localhost""nombre_usuario_base_de_datos""contraseña");
if(!
$server_link){
    die(
"Fall&oacute; la Conexi&oacute;n "mysql_error());
}
// seleccionamos la base de datos
$db_selected mysql_select_db("nombre_de_tu_base_de_datos"$server_link);
if(!
$db_selected){
    die(
"No se pudo seleccionar la Base de Datos "mysql_error());
}
// varificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
    
$frase addslashes($_GET['frase']);
    
// hacemos la consulta de busqueda
    
$sqlBuscar mysql_query("SELECT id_noticia, Titulo, Resumen, Texto,
                              MATCH (Titulo, Resumen, Texto)
                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
                              FROM noticias
                              WHERE MATCH (Titulo, Resumen, Texto)
                              AGAINST ('$frase' IN BOOLEAN MODE)
                              ORDER BY coincidencias DESC"
$server_link)
                              or die(
mysql_error());                              
    
$totalRows mysql_num_rows($sqlBuscar);
    
// Enviamos un mensaje
    // indicando la cantidad de resultados ($totalRows)
    // para la frase busada ($frase)
    
if(!empty($totalRows)){
        echo 
stripslashes("<p>Su b&uacute;squeda arroj&oacute; <strong>$totalRows</strong> resultados para <strong>$frase</strong></p>");        
        
// mostramos los resultados
        
while($row mysql_fetch_array($sqlBuscar)){
//echo "<strong><a href='#'>$row[Titulo]</a>:</strong> <em>Coincidencias: ". round($row['coincidencias']) ."</em><br />";
echo "<strong><a href='noti_detalle.php?id_noticia=$row[id_noticia]' target='_blanck'>$row[Titulo]</a>:</strong> <em>Coincidencias: "round($row['coincidencias']) ."</em><br />";

            echo 
"<p>".substr(strip_tags($row['Resumen']), 0255)."...</p>";
            echo 
"<p>".substr(strip_tags($row['Texto']), 0255)."...</p>";
        }
    }
    
// si se ha enviado vacio el formulario
    // mostramos un mensaje del tipo Oops...!
    
elseif(empty($_GET['frase'])){
        echo 
"Debe introducir una palabra o frase.";
    }
    
// si no hay resultados
    // otro mensaje del tipo Oops...!
    
elseif($totalRows == 0){
        echo 
stripslashes("Su busqueda no arrojo resultados para <strong>$frase</strong>");
    }
}
?>
<h3><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Buscador </a></h3>
<form name="buscar" action="<?php $_SERVER['PHP_SELF'?>" method="get">Buscar: <input type="text" size="20" value="<?php echo $_GET['frase']; ?>" name="frase" />
<input type="submit" name="buscar" value="Buscar" />
</form>
Abres esa página y listo; si conecta bien con tu base de datos, funciona como relojito suizo. Lo he comprobado muchas veces.

Si necesitas más ayuda, mándame un mensaje.

Saludoskis