Búsqueda y comentario

Iniciado por bgnumis, 17 Diciembre 2014, 21:51 PM

0 Miembros y 1 Visitante están viendo este tema.

bgnumis

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

MinusFour

Para hacer busquedas de texto en MySQL puedes usar LIKE:

Código (MySQL) [Seleccionar]

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 (MySQL) [Seleccionar]

SELECT nombre
FROM usuarios
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/

ElInquisidor

Para el autocompletado de los textos utiliza JQuery.

Aqui te dejo un ejemplo
HTML:
Código (html4strict) [Seleccionar]
<input type="text" id="busqueda" />
             
<div id="resultado"></div>

JQuery
$(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 (php) [Seleccionar]
<?php
 
      $buscar 
$_POST['b'];
       
      if(!empty(
$buscar)) {
            
buscar($buscar);
      }
       
      function 
buscar($b) {
            
$con mysql_connect('localhost','root''pass');
            
mysql_select_db('base_de_datos'$con);
       
            
$sql mysql_query("SELECT * FROM TUTABLA WHERE nombre LIKE '%".$b."%'",$con);
             
            
$contar mysql_num_rows($sql);
             
            if(
$contar == 0){
                  echo 
"No se han encontrado resultados para '<b>".$b."</b>'.";
            }else{
                  while(
$row=mysql_fetch_array($sql)){
                        
$nombre $row['nombre'];
                        
$id $row['id'];
                         
                        echo 
$id." - ".$nombre."<br /><br />";   
                  }
            }
      }
       
?>



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.