Ver Mensaje Individual
  #27 (permalink)  
Antiguo 08/02/2011, 16:46
Avatar de Dragon_Mandarin
Dragon_Mandarin
 
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 7 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