Foros del Web » Programando para Internet » PHP »

[Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Estas en el tema de [Aporte] Como hacer un buscador sencillo usando PHP y MySQL en el foro de PHP en Foros del Web. Hola foreros, este es un aporte sore todo para los que se inician, pues regularmente suele ser un lio esto e hacer un buscador, pero ...

  #1 (permalink)  
Antiguo 09/10/2008, 07:05
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 3 meses
Puntos: 638
Información [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Hola foreros, este es un aporte sore todo para los que se inician, pues regularmente suele ser un lio esto e hacer un buscador, pero si es realmente facil y rapido de hacer.

En nuestro ejemplo, tendremos una tabla en la Base de Datos del tipo MyISAM, ya que este motor soporta Funciones de búsqueda de texto completo (Full-Text). La tabla en si seria en donde guardaríamos las noticias de nuestro sitio web y la búsqueda la vamos a hacer en los campos Titulo y Cuerpo de la Noticia, por lo tanto nos centraremos en ellos solamente.

Los resultados de las búsquedas se ordenarán de forma tal, que los primeros serán los que mayor cantidad de coincidencias tengan con la cadena pasada a la consulta.

La tabla MySQL:
Código sql:
Ver original
  1. CREATE TABLE `noticias` (
  2. `noticia_ID` INT(11) NOT NULL AUTO_INCREMENT,
  3. `noticiaTitulo` VARCHAR(200) NOT NULL,
  4. `noticiaNoticia` text NOT NULL,
  5. PRIMARY KEY (`noticia_ID`),
  6. FULLTEXT KEY `buscador` (`noticiaTitulo`,`noticiaNoticia`)
  7. ) ENGINE=MyISAM;
El formulario HTML:
Todo lo vamos a hacer en una misma página: buscar.php

Código php:
Ver original
  1. <h1><a href="<?php echo $_SERVER['PHP_SELF']; ?>”>Buscador - By RogerTM</a></h1>
  2. <form name=”buscar” action=”<?php $_SERVER['PHP_SELF'] ?>” method=”get”>
  3. Buscar: <input type=”text” size=”50″ value=”<?php echo $_GET['frase']; ?>” name=”frase” />
  4. <input type=”submit” name=”buscar” value=”Buscar” />
  5. </form>

Codigo PHP:

Código php:
Ver original
  1. <?php
  2. // conectar al servidor
  3. $server_link = mysql_connect("localhost", "root", "");
  4. if(!$server_link){
  5.     die("Fall&oacute; la Conexi&oacute;n ". mysql_error());
  6. }
  7. // seleccionamos la base de datos
  8. $db_selected = mysql_select_db("data", $server_link);
  9. if(!$db_selected){
  10.     die("No se pudo seleccionar la Base de Datos ". mysql_error());
  11. }
  12. // varificamos que el formulario halla sido enviado
  13. if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
  14.     $frase = addslashes($_GET['frase']);
  15.     // hacemos la consulta de busqueda
  16.     $sqlBuscar = mysql_query("SELECT noticiaTitulo, noticiaNoticia,
  17.                              MATCH (noticiaTitulo, noticiaNoticia)
  18.                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
  19.                              FROM noticias
  20.                              WHERE MATCH (noticiaTitulo, noticiaNoticia)
  21.                              AGAINST ('$frase' IN BOOLEAN MODE)
  22.                              ORDER BY coincidencias DESC", $server_link)
  23.                               or die(mysql_error());                              
  24.     $totalRows = mysql_num_rows($sqlBuscar);
  25.     // Enviamos un mensaje
  26.     // indicando la cantidad de resultados ($totalRows)
  27.     // para la frase busada ($frase)
  28.     if(!empty($totalRows)){
  29.         echo stripslashes("<p>Su b&uacute;squeda arroj&oacute; <strong>$totalRows</strong> resultados para <strong>$frase</strong></p>");        
  30.         // mostramos los resultados
  31.         while($row = mysql_fetch_array($sqlBuscar)){
  32.             echo "<strong><a href='#'>$row[noticiaTitulo]</a>:</strong> <em>Coincidencias: ". round($row['coincidencias']) ."</em><br />";
  33.             echo "<p>".substr(strip_tags($row['noticiaNoticia']), 0, 255)."...</p>";
  34.         }
  35.     }
  36.     // si se ha enviado vacio el formulario
  37.     // mostramos un mensaje del tipo Oops...!
  38.     elseif(empty($_GET['frase'])){
  39.         echo "Debe introducir una palabra o frase.";
  40.     }
  41.     // si no hay resultados
  42.     // otro mensaje del tipo Oops...!
  43.     elseif($totalRows == 0){
  44.         echo stripslashes("Su busqueda no arrojo resultados para <strong>$frase</strong>");
  45.     }
  46. }
  47. ?>

Nota sobre la consulta:
Cita:
La función MATCH() realiza una búsqueda de lenguaje natural para cadenas contra una colección de textos. Una colección es un conjunto de una o más columnas incluídas en un índice FULLTEXT. La cadena de búsqueda se da como argumento para AGAINST(). Para cada registro en la tabla MATCH() retorna un valor de relevancia, esto es, una medida de similaridad entre la cadena de búsqueda y el texto en el registro en las columnas mencionadas en la lista MATCH().
[...]
Para búsquedas FULL-TEXT en lenguaje natural, se requiere que las columnas nombradas en la función MATCH() sean las mismas columnas incluídas en algún índice FULLTEXT en su tabla. Para la consulta precedente, tenga en cuenta que las columnas nombradas en la función MATCH() (noticiaTitulo y noticiaNoticia) son las mismas que las nombradas en la definición del índice FULLTEXT de la tabla noticias.
[...]
La consulta retorna los valores de relevancia y también ordena los registros en orden decrecente de relevancia. Para conseguir este resultado, debe especificar MATCH() dos veces: una vez en la lista SELECT y otra en la cláusula WHERE. Esto hace que no haya sobrecarga adicional, ya que el optimizador de MySQL se da cuenta que hay dos llamadas MATCH() son idénticas e invoca la búsqueda FULL-TEXT sólo una vez.

Tomado del Manual de MySQL.
Este mismo post lo publique en mi Blog con alguna explicacion de mas.

Espero sea util

saludos y suerte

muy lindo el resaltador de codigo xD
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Última edición por rogertm; 08/11/2010 a las 13:20
  #2 (permalink)  
Antiguo 09/10/2008, 09:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Solo como tip, también tenemos resaltador de SQL [highlight=sql][/highlight]

Saludos y gracias por tu aporte.
  #3 (permalink)  
Antiguo 09/10/2008, 09:11
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 3 meses
Puntos: 638
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Cita:
Iniciado por GatorV Ver Mensaje
Solo como tip, también tenemos resaltador de SQL [highlight=sql][/highlight]

Saludos y gracias por tu aporte.
Gracias por el Tip :D
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #4 (permalink)  
Antiguo 13/10/2008, 08:43
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 5 meses
Puntos: 49
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Bien rogertm, buen aporte



Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #5 (permalink)  
Antiguo 15/10/2008, 12:40
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 8 meses
Puntos: 14
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Cita:
Iniciado por GatorV Ver Mensaje
Solo como tip, también tenemos resaltador de SQL [highlight=sql][/highlight]

Saludos y gracias por tu aporte.
Me disculpo por mi ignorancia, pero ¿dónde debiera ir el highlight en el código aportado por Roger?

Agradeceré tu respuesta.

Saludos,

Ricardo
  #6 (permalink)  
Antiguo 15/10/2008, 13:51
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 3 meses
Puntos: 638
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Cita:
Iniciado por Dragon_Mandarin Ver Mensaje
Me disculpo por mi ignorancia, pero ¿dónde debiera ir el highlight en el código aportado por Roger?

Agradeceré tu respuesta.

Saludos,

Ricardo
aqui: http://www.forosdelweb.com/f18/nuevo...geishi-624896/

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #7 (permalink)  
Antiguo 15/10/2008, 15:38
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 8 meses
Puntos: 14
Busqueda Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Cita:
Iniciado por rogertm Ver Mensaje
Hola, Roger!

No, no era a eso a lo que me referí. Me pareció que lo del highlight tiene que ver con resaltar en algún color la palabra o frase que hemos buscado. No se si me explico. Eso ayuda visualmente a ubicar dentro de un artículo, por ejemplo, dónde está la palabra y cuál es el contexto. El highlight me parece que se hace en la sentencia sql, pero ignoro dónde, en qué parte del código hay que instalarla y cómo se hace ...

Si alguien puede ayudarme con eso, genial.

Gracias!

Saludos cordiales,

Ricardo
  #8 (permalink)  
Antiguo 15/10/2008, 15:48
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años, 6 meses
Puntos: 11
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Cita:
Iniciado por GatorV Ver Mensaje
Solo como tip, también tenemos resaltador de SQL [highlight=sql][/highlight]

Saludos y gracias por tu aporte.
GatorV se refiere a esto:

Código sql:
Ver original
  1. SELECT noticiaTitulo, noticiaNoticia,
  2.        MATCH (noticiaTitulo, noticiaNoticia)
  3.        AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
  4. FROM noticias
  5. WHERE MATCH (noticiaTitulo, noticiaNoticia)
  6. AGAINST ('$frase' IN BOOLEAN MODE)
  7. ORDER BY coincidencias DESC

(Para que los foreros veamos las consultas SQL con hightlight)

Saludos
  #9 (permalink)  
Antiguo 16/10/2008, 06:16
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 3 meses
Puntos: 638
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Cita:
Iniciado por Dragon_Mandarin Ver Mensaje
Hola, Roger!

No, no era a eso a lo que me referí. Me pareció que lo del highlight tiene que ver con resaltar en algún color la palabra o frase que hemos buscado. No se si me explico. Eso ayuda visualmente a ubicar dentro de un artículo, por ejemplo, dónde está la palabra y cuál es el contexto. El highlight me parece que se hace en la sentencia sql, pero ignoro dónde, en qué parte del código hay que instalarla y cómo se hace ...

Si alguien puede ayudarme con eso, genial.

Gracias!

Saludos cordiales,

Ricardo
ya se a lo que te refieres... yo con este mismo ejemplo que puse aqui intente hacer eso, pero se me complico y preferi ponerlo asi por ahora, porque quiero hacer que se resalte el resultado de la busqueda.

para eso hay que usar las funciones de control de salida, mira este ejemplo:
http://www.forosdelweb.com/f18/ejecutar-funcion-592493/

pero en lugar de pasarle caritas :) le pasas la cadena a buscar y remplazas con el estilo que le quieras dar, mas o menos algo asi

saludos y suerte

PD: deja ver cuando tenga un tiempito le meto mano a eso y si me sale, pues lo pongo por aqui
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #10 (permalink)  
Antiguo 16/10/2008, 06:22
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 8 meses
Puntos: 14
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Cita:
Iniciado por rogertm Ver Mensaje
ya se a lo que te refieres... yo con este mismo ejemplo que puse aqui intente hacer eso, pero se me complico y preferi ponerlo asi por ahora, porque quiero hacer que se resalte el resultado de la busqueda.

para eso hay que usar las funciones de control de salida, mira este ejemplo:
http://www.forosdelweb.com/f18/ejecutar-funcion-592493/

pero en lugar de pasarle caritas :) le pasas la cadena a buscar y remplazas con el estilo que le quieras dar, mas o menos algo asi

saludos y suerte

PD: deja ver cuando tenga un tiempito le meto mano a eso y si me sale, pues lo pongo por aqui

Gracias, estimado roger! Revisaré los enlaces.

Quedo atento a tu aporte sobre esta materia.

Saludos,

Ricardo
  #11 (permalink)  
Antiguo 20/10/2008, 22:31
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Muchas gracias Roger, anda perfecto y está excelente.

Una pregunta, le puedo cambiar en vez de que ordene los resultados por "coincidencias" a que los ordene por fecha? (en la consulta le agregué que traiga la fecha también).

Quiero que aparezca primero lo más nuevo que encuentre, y como está aparece al revés.

Funciona bárbaro! :)

Última edición por elbastardo; 28/10/2008 a las 09:31
  #12 (permalink)  
Antiguo 28/10/2008, 10:51
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Me parece mejor preguntar acá así queda todo junto.

Lo que te preguntaba era si se podría (y cómo) adaptar este paginador de registros que está en las FAQ de PHP.

Código PHP:
<?php
########################################################
## PAGINAR REGISTROS
## POR: Marco A. Castillo
## EMAIL: [email protected]
########################################################

# 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 "root";
$pass "";
$db "directorio";

# 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 "licencias";

# 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 2;

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

$rs mysql_query("select * from ".$tabla." limit $desde,$hasta");
if(
$count!=0){
 while(
$result=mysql_fetch_array($rs)){
  
# Aqui colocan su tabla html y sus datos a mostrar
  # solo se usa el array $result[""] y entre comillas
  # el nombre de la celda a mostrar.
  
echo $result["licencia"]."<br>\n";    
  
# fin del despliegue personalizado.
 
}
}
else{
 echo 
"No tenemos registros.";    
}
mysql_close($link);

# 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>";
    }
}
?>
Quizás se pueda usar algo como el "phppaging" pero no sé ya que nunca lo he utilizado.

Saludos
  #13 (permalink)  
Antiguo 28/10/2008, 11:20
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 3 meses
Puntos: 638
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Woow...! esto del paginado a mi como que se me complica, mira, yo tenia un codigo que tengo que buscar en que gaveto lo perdi, si lo encuentro te lo paso, pero ahora mismo no se donde esta, si recuerdo que era el codigo del paginado que hace dreamweaver y yo lo modifique y le quite codigo de mas que tenia, deja ver si aparece te lo doy...

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #14 (permalink)  
Antiguo 28/10/2008, 11:26
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

jeje es complicado. Bueno si lo encuentras por ahí te lo agradezco muchísimo.. Si logro hacerlo de alguna manera lo posteo acá mismo.

Salutes.
  #15 (permalink)  
Antiguo 28/10/2008, 22:06
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Te dejo lo que hice con el Phppaging, es realmente simple, solo hay que bajar la librería y hacer algunos pequeños cambios.

Por partes, la librería se baja de acá: http://phppaging.phperu.net/descargas/d1.html

Al archivo PHPPaging.lib.php lo subimos en cualquier lado en nuestro servidor y lo incluimos una vez en nuestro "buscar.php".

Código PHP:
<?php require_once 'PHPPaging.lib.php'?>
Luego, inicializamos el paginador y hacemos algunos ajustes para los resultados de la búsqueda.
Esto después de:

Código PHP:
// verificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
    
$frase addslashes($_GET['frase']); 
Así:
Código PHP:
<?php
    
// Instanciamos el objeto
    
$paging = new PHPPaging;
    
// Poniendo 20 resultados por página
    
$paging->porPagina(10); 
    
// Estableciendo las páginas adyacentes 
    
$paging->paginasAntes(41020); 
    
$paging->paginasDespues(41020);  
    
    
// Cambiando el texto de la referencia a la página actual
    
$paging->mostrarActual("<span class=\"navthis\">{n}</span>"); 
    
    
// Indicamos la consulta al objeto
    // hacemos la consulta de busqueda
    // acá van las modificaciones, se elimina $sqlBuscar, $totalRows y el if por esto
    
    
$paging->agregarConsulta("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 cocincidencias ASC"
$server_link);            
    
// aca otros cambios, con la funcion ejecutar mostramos todo
       
$paging->ejecutar();
        
    
// y  luego mostramos los resultados con un pequeño cambio al while
        
while($row $paging->fetchResultado()) {
        echo 
"<strong><a href='#'>$row[noticiaTitulo]</a>:</strong> <em>Coincidencias: "round($row['coincidencias']) ."</em><br />";
echo 
"<p>".substr(strip_tags($row['noticiaNoticia']), 0255)."...</p>";

?>
<?php 
}} ?>
<?php
     
// acá nos muestra la cantidad de resultados encontrados, el numero de paginas, etc
echo "<b><SPAN STYLE=\"font-size:11px;font-family:Tahoma;color:black;font-weight:bold\">Página ".$paging->numEstaPagina()." de ".$paging->numTotalPaginas()."</SPAN></b><br />";
    echo 
"<SPAN STYLE=\"font-size:11px;font-family:Tahoma;color:black;font-weight:bold\">Mostrando ".$paging->numRegistrosMostrados()." resultados, del ".$paging->numPrimerRegistro()." al ".$paging->numUltimoRegistro();
    echo 
" de un total de ".$paging->numTotalRegistros()."</SPAN><br />";
    
// Comienza la barra de navegacion, la mostramos
    
echo "<b><div id=\"siteInfo12\"><SPAN STYLE=\"font-size:11px;font-family:Tahoma;color:#9B0000;font-weight:bold\">Navegación: ".$paging->fetchNavegacion()."</SPAN></div></b>";
     
// y listo!
   
?>
La barra de navegación tiene algunos ajustes en el tipo de letra, color, etc.

Espero que sirva, lo puse a modo de agradecimiento ;)

Saludos.
  #16 (permalink)  
Antiguo 18/11/2008, 15:40
 
Fecha de Ingreso: noviembre-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Gracias por los aportes, no es culpa de ustedes que no lo logre entender bien jeje...
  #17 (permalink)  
Antiguo 26/11/2008, 03:28
 
Fecha de Ingreso: septiembre-2008
Mensajes: 4
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

hola y buenas antes que nada me gustaria que cuando encontrara los datos que buscamos los metiera en forma de una tablita pero aplicado al primer codigo como ven estaria bien :)
  #18 (permalink)  
Antiguo 09/01/2009, 09:49
 
Fecha de Ingreso: septiembre-2008
Mensajes: 221
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Hola me presento, soy ambigus, me declaro novato y quiero decirte antes que nada, excelente aporte. Ahora bien me gustaría saber, acerca de tu aporte: Como hacer un Buscador sencillo, usando PHP y MySQL, puesto que quiero hacer uno para mi web. . Entonces me gustaría saber:

1. ¿Dónde inserto esto?:
Código:
<h1><a href=”<?php echo $_SERVER['PHP_SELF']; ?>”>Buscador - By RogerTM</a></h1>
<form name=”buscar” action=”<?php $_SERVER['PHP_SELF'] ?>” method=”get”>
Buscar: <input type=”text” size=”50″ value=”<?php echo $_GET['frase']; ?>” name=”frase” />
<input type=”submit” name=”buscar” value=”Buscar” />
</form>
a. En un HTML de la Index.html? (Página de inicio)?
b. En el archivo buscar.php?

2. Comprendo que esto forma parte del código buscar.php, pero ¿Cómo lleno las secciones: “localhost”,”root”,”******”?:
Código PHP:
<?php
// conectar al servidor
$server_link mysql_connect(”localhost”“root”*****);
if(!
$server_link){
die(
”Falló la Conexión “mysql_error());
}
3. Actualmente estoy trabajando en el servicio gratuito de gofreeserve.com, me gusta mucho y quiero desarrollar mi web ahi´. Entonces en la base de datos Mysql, tengo una que se denomina gofre_2656604_Prueba, puesto que mis datos son los siguientes:

Cuenta gratis de gofreeserve.com:
gofre_2656604
Contraseña: *******

En la base de datos he insertado el código de:
Código:
CREATE TABLE `noticias` (
`noticia_ID` int(11) NOT NULL auto_increment,
`noticiaTitulo` varchar(200) NOT NULL,
`noticiaNoticia` text NOT NULL,
PRIMARY KEY  (`noticia_ID`),
FULLTEXT KEY `buscador` (`noticiaTitulo`,`noticiaNoticia`)
) ENGINE=MyISAM;
Entonces, ¿Qué debo hacer para que me vaya funcionando?, en tu post planteas una explicación válida, pero debo decirte que no soy muy experto en estos temas, y me gustaría que me enseñarás.

4. Continuando con el archivo buscar.php, dices:
Código PHP:
// seleccionamos la base de datos
$db_selected mysql_select_db(”database”$server_link);
if(!
$db_selected){
die(
”No se pudo seleccionar la Base de Datos “mysql_error());

a. Acaso debo insertar mi base de datos: gofre_2656604 en donde dice: “database”, y listo?

5. En lo que sigue del código buscar.php, ¿No debo modificar nada más?:
Código PHP:
// varificamos que el formulario halla sido enviado
if(isset($_GET['buscar']) && $_GET['buscar'] == ‘Buscar’){
$frase addslashes($_GET['frase']);
// hacemos la consulta de busqueda
// ver explicación mas abajo
$sqlBuscar mysql_query(”SELECT noticiaTitulonoticiaNoticia,
MATCH (noticiaTitulonoticiaNoticia)
AGAINST (’$frase’ IN BOOLEAN MODE) AS coincidencias
FROM noticias
WHERE MATCH 
(noticiaTitulonoticiaNoticia)
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</strongresultados 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['coincidencias']) .”</em><br />”;
echo <p>.substr(strip_tags($row['noticiaNoticia']), 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>);
}
}
?> 
Ahora bien, me gustaría ir dando paso por paso, podrías porfavor ayudarme en esto?

Espero ansiosamente una respuesta.
  #19 (permalink)  
Antiguo 09/01/2009, 12:36
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 8 meses
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
  #20 (permalink)  
Antiguo 09/01/2009, 16:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 221
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Hola Dragon Mandarin, en primer lugar, GRACIAS, en segundo me gustaría saber si en el código que me muestras, ¿No debo hacer ninguna modificación?, por ejemplo cambiar algo en "localhost", "nombre_usuario_base_de_datos", "contraseña"?, Que en mi caso sería: "localhost" (Nose que es) "gofre_2656604", "*******" (Mi contraseña para la base de datos) y mira he insertado lo de "Base de datos" que dice en código, te muestro lo que he insertado:

1. Imágen de mi base de datos A: http://rapidshare.com/files/181532065/Mi_base_de_datos.jpg.html
2. Imágen de mi base de datos B: http://rapidshare.com/files/181532723/Mi_base_de_datos_2.jpg.html

Espero una pronta respuesta.
  #21 (permalink)  
Antiguo 09/01/2009, 18:31
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 8 meses
Puntos: 14
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Hola, ambigus.

No cambies nada del script de Roger. Por lo que veo, ya introdujiste los parámetros correctamente en usuario, contraseña y nombre de la base de datos, con lo cual estás listo para hacer funcionar el buscador.

localhost es el servidor local, en tu equipo; supongo que tienes instalado algún servidor que tiene Apache+php+MySQL, ¿correcto? Bueno, no le cambies nada al nombre localhost; déjalo tal cual.

La base de datos está OK, no veo problemas; las tablas están donde deben estar y no debieras tener problemas para hacer trabajar tu buscador.

Déjame saber si lograste hacerlo funcionar.

Bye

Última edición por Dragon_Mandarin; 09/01/2009 a las 18:38
  #22 (permalink)  
Antiguo 10/01/2009, 11:58
 
Fecha de Ingreso: septiembre-2008
Mensajes: 221
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Hola Dragon Mandarin, resulta que he tenido diversos incombenientes y me gustaría que me instruyeras en mis vicisitudes. Bien, te muestro mis avances:

1. He insertado el código que me diste diseñado por Roger y modificado con mis datos, porfavor detallalo, es un buscar.php: http://rapidshare.com/files/181810645/Fallos_2.jpg.html

2. He diseñado un formulario de búsqueda en el HTML para mi web, es decir para la página de inicio, porfavor detallala, la titulé Prueba 4.html:http://rapidshare.com/files/181814633/Fallos_3.jpg.html

3. Con los archivos anteriores (buscar.php y Prueba 4.html) los he subido a mi servidor de gofreeserver.com, gofre_2656604 y como has visto anteriormente te mostré los datos de la base de datos: Mysql, titulada: gofre_2656604_Prueba. El inconveniente, es que entro a la dirección: extremegames.gofreeserve.com/Prueba 4.html en donde como podrás ver es el formulario del archivo Prueba 4.html, y cuando intento buscar algo por la letra a, me lanza este error: http://rapidshare.com/files/181816468/Fallos_1.jpg.html

Espero que porfavor me ayudes, GRACIAS compadre.
Atentamente Ambigus
  #23 (permalink)  
Antiguo 10/01/2009, 15:47
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 8 meses
Puntos: 14
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Estimado ambigus,

veo que estás más enredado que paquete de virutas jejejeje (bromas)

Simplifica la cosa, solo usa buscar.php. Esto es lo que tienes que hacer:

Código:
http://localhost/ambigus/buscar.php ....
... y listo

Te saldrá en pantalla el clásico formulario de búsquedas, introduce cualquier palabra que esté en un registro de tu base de datos (me refiero a si tienes alguna noticia publicada), por ejemplo, si tienes una noticia que trate sobre la versión beta de Windows 7, pon cualquier palabra relacionada con esa noticia y debiera salirte en pantalla ... el mismo formulario tiene un código en donde "imprime" en pantalla la palabra que buscas, más el contexto de la noticia ...

Verás que no es difícil.

Repito, solo necesitas apuntar a buscar.php

Otra cosa, nada que ver con incluir el formulario buscar.php con código php en una página html .. bad idea No te funcionará ni en un millón de años. O sea, cada oveja con su rebaño, por decirlo de un modo poco ortodoxo. Te lo recuerdo, just in case; imagino que eso lo tienes claro.

Viendo más detenidamente la imagen que has subido a rapidshare, veo que tienes un problema de conexión a tu base de datos MySQL. Revisa bien los parámetros que deben estar bien instalados en el server remoto. Si has hecho las pruebas suficientes en tu servidor local, el server que tienes instalado en tu equipo, y te funciona bien, no entiendo por qué ya en Internet, en extremegames no trabaja de la misma manera. Definitivamente tienes un problema de configuración; quizás a tu base de datos no les has dado los permisos de usuario (TODOS) desde el CPanel ... El problema que tienes es ése, fallo en configuración del script y dos, no le has dado los permisos a tu base de datos, qué se yo. Revisa bien todo esto.

Veo que usas el Dreamweaver para armar y desarrollar tu sitio Web. No lo digas acá, porque hay varios ingenieros en informática que saltarán de su asiento!! jjajajajaja (más bromas) bueno, muchos de ellos, definitivamente no se llevan bien con el Dreamweaver. Pero bueno, la verdad es que a mi me encanta el Dreamweaver y lo uso siempre y cero dramas de mi parte con eso; solo hay que saber configurarlo bien para que no haga cosas indebidas.

Y por último, ¿qué solución de server tienes instalada en tu compu? Imagino que debe ser FoxServer o el Xampp o el Appserv ...

Espero que esta vez te resulte.

Bye

Última edición por Dragon_Mandarin; 10/01/2009 a las 15:58
  #24 (permalink)  
Antiguo 10/01/2009, 21:49
 
Fecha de Ingreso: septiembre-2008
Mensajes: 221
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Hola compadre Dragon Mandarína, sinceramente, antes estaba confundido, ahora, Sí que estoy confundido hermano, ni idea de ¿Cómo configurar mi PC correctamente a mi base de datos, con la del servidor gratuito de gofreeserver.com. Compadre, siendote sincero, quiero ganarme el derecho de la web, que actualmente estoy desarrollando. Ahora bien, no tengo la menor idea de configuraciones correctas . Compadre, podrías diseñar un tutorial para este humilde ignorante, dime, si quieres puedes entrar a mi cuenta de gofreeserve.com, te doy la contraseña, o nose, tengo una idea, ¿Podrías porfavor crear una cuenta gratuita en gofreeserve.com e insertar todas las configuraciones respectivas con imágenes y todo, con el fin de crear un tutorial completo y universal?

Espero que de algún modo podrías especificar el nivel 0 (Yo), para algunos novatos que estén en nivel 0 (Yo)

Gracias Dragon Mandarin.
Atentamente Ambigus
  #25 (permalink)  
Antiguo 11/01/2009, 06:16
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 8 meses
Puntos: 14
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Estimado Ambigus,

¿qué te parece si seguimos parlando sobre este tema mediante nuestros respectivos correos o el Messenger, lo que sea, pero lo digo a fin de no ocupar más este espacio [Aportes] y hacer que sea extenso. Mejor escribir acá cuando tengamos solucionado el problema y así le sirve a todos.

Lo que me comentas, no hay problemas, encantado de ayudarte a montar tu base de datos en el servidor remoto.

A todo esto, no me respondiste mi pregunta acerca de qué tipo de servidor tienes montado en tu PC; es importante, amigo.

Saludos,

Ricardo

Última edición por GatorV; 11/01/2009 a las 13:17
  #26 (permalink)  
Antiguo 08/02/2011, 16:06
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 11 meses
Puntos: 0
Mensaje Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Agradesco su aporte de antemano........quisiera que me den opinioniones o en todo caso un codigo en php..sobre un buscador de "años"....ya que en mis registros de las tablas tengo libros solo por fecha de publicacion....que estan solo en años...por tanto si no fuera tanta molestia alguien sabe de buscadores de años...agradesco su aporte.
  #27 (permalink)  
Antiguo 08/02/2011, 16:46
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 8 meses
Puntos: 14
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Cita:
Iniciado por bariedto Ver Mensaje
Agradesco su aporte de antemano........quisiera que me den opinioniones o en todo caso un codigo en php..sobre un buscador de "años"....ya que en mis registros de las tablas tengo libros solo por fecha de publicacion....que estan solo en años...por tanto si no fuera tanta molestia alguien sabe de buscadores de años...agradesco su aporte.

Crea tu tabla y agrega lo que falte. Me explico:

Código HTML:
Ver original
  1. CREATE TABLE `noticias` (
  2. `noticia_ID` int(11) NOT NULL auto_increment,
  3. `noticiaTitulo` varchar(200) NOT NULL,
  4. `noticiaNoticia` text NOT NULL,
  5. `noticiaFecha` date
  6. `noticiaAnio` varchar 90
  7. PRIMARY KEY  (`noticia_ID`),
  8. FULLTEXT KEY `buscador` (`noticiaTitulo`,`noticiaNoticia`, `noticiaFecha`, `noticiaAnio`)
  9. ) ENGINE=MyISAM;

Bueno, algo así. Y luego el php

Código PHP:
Ver original
  1. <?php
  2. // conectar al servidor
  3. $server_link = mysql_connect("localhost", "nombre_usuario_base_de_datos", "contraseña");
  4. if(!$server_link){
  5.     die("Fall&oacute; la Conexi&oacute;n ". mysql_error());
  6. }
  7. // seleccionamos la base de datos
  8. $db_selected = mysql_select_db("nombre_de_tu_base_de_datos", $server_link);
  9. if(!$db_selected){
  10.     die("No se pudo seleccionar la Base de Datos ". mysql_error());
  11. }
  12. // varificamos que el formulario halla sido enviado
  13. if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
  14.     $frase = addslashes($_GET['frase']);
  15.     // hacemos la consulta de busqueda
  16.     $sqlBuscar = mysql_query("SELECT id_noticia, Titulo, Resumen, Texto, Fecha, Anio
  17.                              MATCH (Titulo, Resumen, Texto, Fecha, Anio)
  18.                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
  19.                              FROM noticias
  20.                              WHERE MATCH (Titulo, Resumen, Texto, Fecha, Anio)
  21.                              AGAINST ('$frase' IN BOOLEAN MODE)
  22.                              ORDER BY coincidencias DESC", $server_link)
  23.                               or die(mysql_error());                              
  24.     $totalRows = mysql_num_rows($sqlBuscar);
  25.     // Enviamos un mensaje
  26.     // indicando la cantidad de resultados ($totalRows)
  27.     // para la frase busada ($frase)
  28.     if(!empty($totalRows)){
  29.         echo stripslashes("<p>Su b&uacute;squeda arroj&oacute; <strong>$totalRows</strong> resultados para <strong>$frase</strong></p>");        
  30.         // mostramos los resultados
  31.         while($row = mysql_fetch_array($sqlBuscar)){
  32. //echo "<strong><a href='#'>$row[Titulo]</a>:</strong> <em>Coincidencias: ". round($row['coincidencias']) ."</em><br />";
  33. 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 />";
  34.  
  35.             echo "<p>".substr(strip_tags($row['Resumen']), 0, 255)."...</p>";
  36.             echo "<p>".substr(strip_tags($row['Texto']), 0, 255)."...</p>";
  37.         }
  38.     }
  39.     // si se ha enviado vacio el formulario
  40.     // mostramos un mensaje del tipo Oops...!
  41.     elseif(empty($_GET['frase'])){
  42.         echo "Debe introducir una palabra o frase.";
  43.     }
  44.     // si no hay resultados
  45.     // otro mensaje del tipo Oops...!
  46.     elseif($totalRows == 0){
  47.         echo stripslashes("Su busqueda no arrojo resultados para <strong>$frase</strong>");
  48.     }
  49. }
  50. ?>
  51. <h3><a href="<?php echo $_SERVER['PHP_SELF']; ?>">Buscador </a></h3>
  52. <form name="buscar" action="<?php $_SERVER['PHP_SELF'] ?>" method="get">Buscar: <input type="text" size="20" value="<?php echo $_GET['frase']; ?>" name="frase" />
  53. <input type="submit" name="buscar" value="Buscar" />
  54. </form>

Prueba, a ver qué pasa.

Saludos
  #28 (permalink)  
Antiguo 04/05/2011, 16:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Este ejemplo parte de que tengamos una tabla con los datos introducidos manualmente.

Como podemos hacer un motor de busqueda tipo "google" que tenga otra función o clase que se dedique cada x tiempo a regenerar la tabla para luego hacer las búsquedas?.

Estoy colaborando en un proyecto web, y tenemos muchas dificultades en hacer un buscador potente y que de buenos resultados. El problema es que ahora mismo tiene que buscar en muchas tablas diferentes para llegar a un resultado, y se me ha ocurrido que casi sería mejor indexar toda la web entera en una tabla con la url de destino.

Buscando por google he encontrado que hay motores open source que hacen esto, pero no veo que sean proyectos actualizados.
- Sphider
- PHPDig
  #29 (permalink)  
Antiguo 26/10/2011, 08:58
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Muy buenos dia.

Este buscador es genial y agradezco el aporte, solo que tengo un problema con el.

El problema es ya una vez realizada la busqueda, como puedo lograr que los resultados de la busqueda tenga su propio link, solo en el codigo se muestra esta parte

echo "<strong><a href='#'>$row[noticiaTitulo]</a></strong> <em>" ."</em><br />";

La parte de echo "<strong><a href='#'> el codigo para que al darnos resultados este puedan vincular cada registro a una pagina. Adicionalmente en mi base de datos ya he creado una tabla con estos datos y adicional una que es la de url donde coloco las paginas para cada registro. Mi detalle es como lo enlazo.

Saludos
  #30 (permalink)  
Antiguo 26/10/2011, 09:30
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 8 meses
Puntos: 52
Respuesta: [Aporte] Como hacer un buscador sencillo usando PHP y MySQL

Es muy buen tema esto de un buscador y mas si es FULLTEXT (Ya habia visto ese tema en otra parte).

Tu aporte se aplica solo a una tabla con posibilidad de cambiar a otras modificando el codigo fuente, siempre suelo recomendar buen codigo aqui en FW, por eso ahora les recomiendo esta clase que genera la consulta MySQL para utilizarla como buscador FULLTEXT, es una excelente clase que cumploe con la POO, muy facil de utilizar, que en objetivophp.com ponen a nuestra disposicion

Este es el enlace:
Buscador FullText
__________________
Aprendiendo!!!
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

SíEste tema le ha gustado a 8 personas




La zona horaria es GMT -6. Ahora son las 23:19.