Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2011, 08:49
Avatar de camilo1012
camilo1012
 
Fecha de Ingreso: febrero-2011
Mensajes: 46
Antigüedad: 13 años, 3 meses
Puntos: 1
Pregunta Modificar buscador con PHP y MySQL

Que tal amigos, tengo una duda con respecto a un buscador que encontre e los aportes del Foro, necesito que en vez de que el formulario este dentro del archivo, sea independiente, me refiero algo asi:

formulario:
Código:
<h1><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Buscador</a></h1>
<form name="buscar" action="<?php $_SERVER['PHP_SELF'] ?>" method="get">
Buscar: <input type="text" size="30″ value="<?php echo $_GET['frase']; ?>" name="frase" />
<input type="submit" name="buscar" value="Buscar" />
</form>
buscador:
Código:
<?php
// conectar al servidor
$server_link = mysql_connect("127.0.0.1", "root", "110695");
if(!$server_link){
    die("Fall&oacute; la Conexi&oacute;n ". mysql_error());
}
// seleccionamos la base de datos
$db_selected = mysql_select_db("lab", $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 noticiaTitulo, noticiaNoticia,
                              MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
                              FROM noticias
                              WHERE MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE)
                              ORDER BY noticia_ID 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[noticiaTitulo]</a>:</strong> <em>Coincidencias: ". round($row['noticia_ID']) ."</em><br />";
            echo "<p>".substr(strip_tags($row['noticiaNoticia']), 0, 255)."...</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>");
    }
}
?>
también les dejo el php original del buscador:

buscar.php
Código:
<h1><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Buscador</a></h1>
<form name="buscar" action="<?php $_SERVER['PHP_SELF'] ?>" method="get">
Buscar: <input type="text" size="30″ value="<?php echo $_GET['frase']; ?>" name="frase" />
<input type="submit" name="buscar" value="Buscar" />
</form>

<?php
// conectar al servidor
$server_link = mysql_connect("127.0.0.1", "root", "110695");
if(!$server_link){
    die("Fall&oacute; la Conexi&oacute;n ". mysql_error());
}
// seleccionamos la base de datos
$db_selected = mysql_select_db("lab", $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 noticiaTitulo, noticiaNoticia,
                              MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
                              FROM noticias
                              WHERE MATCH (noticiaTitulo, noticiaNoticia)
                              AGAINST ('$frase' IN BOOLEAN MODE)
                              ORDER BY noticia_ID 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[noticiaTitulo]</a>:</strong> <em>Coincidencias: ". round($row['noticia_ID']) ."</em><br />";
            echo "<p>".substr(strip_tags($row['noticiaNoticia']), 0, 255)."...</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>");
    }
}
?>