Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: bgnumis en 17 Diciembre 2014, 21:51 pm



Título: Búsqueda y comentario
Publicado por: bgnumis en 17 Diciembre 2014, 21:51 pm
Hola quiero realizar un formulario donde yo pongo un nombre (que sería un nombre o un apellido) para buscar a una persona que tenga en mi base de datos....voy a indigar como hacer un buscador en php que acceda a mysql y quisiera que por un lado me mostrara qué registros cumplen ese requisito. Luego que si me muestra cuatro pueda seleccionar uno y me autocomplete tres campos. Mail Edad y Comentarios históricos.

Sobre el buscador si me podeis ayudar por donde podría indagar (os enviaría toda la energía y gracias del mundo).

La pregunta realmente es: con VARCHAR (XXXX) sería la forma más lógica de poder introducir un campo de texto. La historia es que de determinadas personas quiero insertar varios comentarios y cuando vengan quisiera hacer una tabla que me muestre cada comentario por fecha. ¿Es razonable hacerlo con un VARCHAR o si el texto es muy largo (el comentario que inserte) lo debiera hacer de otro modo? También podría adjuntar ficheros pero para mi lo importante sería poder tener un histórico de pequeños comentarios (aunque alguno fuese largo).

La última duda es, imaginaos que hiciera comentarios en word y lo que hago es que cada vez que tengo un comentario (cada día) pongo un word. ¿Podría mostrar el histórico de los word?

Muchas Gracias


Título: Re: Búsqueda y comentario
Publicado por: MinusFour en 17 Diciembre 2014, 23:30 pm
Para hacer busquedas de texto en MySQL puedes usar LIKE:

Código
  1. SELECT nombre FROM usuarios WHERE nombre LIKE '%textoabuscar%'

Tambien puedes usar busquedas de tipo Full-text pero solo si los campos son indexados como full-text (propias del engine myISAM e innodb desde 5.6 de mysql). El campo debe ser indexado como fulltext...

Código
  1. SELECT nombre
  2. FROM usuarios
  3. WHERE MATCH(nombre) AGAINST ('texto')

http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

Para lo del autocomplete puedes usar AJAX sobre el campo de busqueda. jQuery UI tiene un metodo de autocomplete que te puede servir.

http://jqueryui.com/autocomplete/


Título: Re: Búsqueda y comentario
Publicado por: ElInquisidor en 18 Diciembre 2014, 15:18 pm
Para el autocompletado de los textos utiliza JQuery.

Aqui te dejo un ejemplo
HTML:
Código
  1. <input type="text" id="busqueda" />
  2.  
  3. <div id="resultado"></div>
JQuery
Código:
$(document).ready(function(){
                               
        var consulta;
                                                                         
         //hacemos focus al campo de búsqueda
        $("#busqueda").focus();
                                                                                                   
        //comprobamos si se pulsa una tecla con el evento keyup
        $("#busqueda").keyup(function(e){
                                     
              //obtenemos el texto introducido en el campo de búsqueda
              consulta = $("#busqueda").val();
                                                                           
              //hace la búsqueda
                                                                                 
              $.ajax({
                    type: "POST",
                    url: "buscar.php",
                    data: "b="+consulta,
                    dataType: "html",
                    beforeSend: function(){
                          //imagen de carga
                          $("#resultado").html("<p align='center'><img src='ajax-loader.gif' /></p>");
                    },
                    error: function(){
                          alert("error petición ajax");
                    },
                    success: function(data){                                                   
                          $("#resultado").empty();
                          $("#resultado").append(data);
                                                             
                    }
              });
                                                                                 
                                                                           
        });
                                                                   
});
PHP:
Código
  1. <?php
  2.  
  3.      $buscar = $_POST['b'];
  4.  
  5.      if(!empty($buscar)) {
  6.            buscar($buscar);
  7.      }
  8.  
  9.      function buscar($b) {
  10.            $con = mysql_connect('localhost','root', 'pass');
  11.            mysql_select_db('base_de_datos', $con);
  12.  
  13.            $sql = mysql_query("SELECT * FROM TUTABLA WHERE nombre LIKE '%".$b."%'",$con);
  14.  
  15.            $contar = mysql_num_rows($sql);
  16.  
  17.            if($contar == 0){
  18.                  echo "No se han encontrado resultados para '<b>".$b."</b>'.";
  19.            }else{
  20.                  while($row=mysql_fetch_array($sql)){
  21.                        $nombre = $row['nombre'];
  22.                        $id = $row['id'];
  23.  
  24.                        echo $id." - ".$nombre."<br /><br />";  
  25.                  }
  26.            }
  27.      }
  28.  
  29. ?>


Para los comentarios sin son largos deberias utilizar text creeria que hay cabria cualquier comentario ya que el tamanio +2 bytes equivalente a 65535 caracteres.