1. ¿Buscando un Banco para abrir tu primera cuenta de ahorros? Revisa nuestro comparativo de cuentas cero mantenimiento haciendo clic aquí.
    Ocultar anuncio

Busqueda en tablas MySQL

Publicado en 'Webmasters' por tirengarfio, 7 Nov 2008.





  1. tirengarfio

    tirengarfio Miembro nuevo

    Registro:
    5 Nov 2008
    Mensajes:
    17
    Likes:
    0




    Saludos,

    imaginaos que tengo la siguiente tabla MySQL:


    Nombre Apellido
    -----------------
    Javier Garcia
    Javier Perez

    Y un formulario escrito en html de este estilo:

    Nombre [ ]
    Apellido [ ]


    Los datos del formulario se pasan a una pagina .php que
    buscaria en la tabla antes descrita.

    Mi duda: ¿que codigo en el archivo .php usarias para que se cumpliesen estas DOS premisas?:

    - Si el usuario rellenase el formulario así:

    Nombre[Javier]
    Apellido[ ]

    en el navegador aparecería
    "Javier Garcia" y "Javier Perez"


    - Si el usuario rellenase el formulario asi:

    Nombre[Javier]
    Apellido[Perez]

    en el navegador aparecería
    "Javier Perez".


    Llevo pensando unos dias y no consigo encontrar la solucion..

    Alguna idea?
     


  2. MijT

    MijT Miembro de bronce

    Registro:
    12 Oct 2006
    Mensajes:
    1,106
    Likes:
    63
    Intenta con esta consulta SQL, que irá en el archivo que recibe los datos del formulario:

    $query = mysql_query("SELECT * FROM tabla WHERE nombre='".$_POST[nombre]."' AND apellido='".$_POST[apellido]."'");

    Luego haces un while para listar las posibles coincidencias de acuerdo a los datos ingresados.

    Saludos.

    PD: Este foro no permite usar el tag
    PHP:
    [/B]
     
  3. tirengarfio

    tirengarfio Miembro nuevo

    Registro:
    5 Nov 2008
    Mensajes:
    17
    Likes:
    0
    -----------------------------
     
    Última edición: 8 Nov 2008
  4. MijT

    MijT Miembro de bronce

    Registro:
    12 Oct 2006
    Mensajes:
    1,106
    Likes:
    63
    No esperarás que te haga todo el sistema o sí?
     
  5. tirengarfio

    tirengarfio Miembro nuevo

    Registro:
    5 Nov 2008
    Mensajes:
    17
    Likes:
    0
    este es mi codigo añadiendo la linea que mencionas:


    // nos conectamos al servidor mysql.
    mysql_connect("localhost", "root", "") OR die(mysql_error());

    // seleccionamos la base de datos "ejemplo".
    mysql_select_db("ejemplo") OR die(mysql_error());

    $result = mysql_query("SELECT * FROM clientes WHERE nombre='".$_POST[nombre]."' AND apellido='".$_POST[apellido]."'");

    // extraemos la primera fila de "clientes" y la pasamos a "$row".
    $row = mysql_fetch_array($result);

    // imprimimos los dos elementos de la unica fila de la tabla "clientes".
    echo $row["nombre"];
    echo "<br>";
    echo $row["apellido"];
    echo "<br>";

    El codigo funciona bien si relleno las dos casillas del formulario, pero el problema es que funciona mal si solo relleno una casilla...

    Por ejemplo, si tengo una tabla como esta:

    Nombre Apellido
    ----------------------------
    Javier Garcia


    y en el formulario escribo "nombre [ Javier ]", la pagina que contiene el codigo php no visualizara nada...y yo quiero que visualize "Javier Garcia".

    PD: se que mi codigo no busca de manera sucesiva en cada una de las filas, pero para este caso me vale...
     
  6. MijT

    MijT Miembro de bronce

    Registro:
    12 Oct 2006
    Mensajes:
    1,106
    Likes:
    63
    A ver prueba este código que acabo de hacer, te recomiendo leerlo bien antes de aplicarlo, ya me dirás si funcionó o no y a ver cómo te echo una mano.

    Saludos.
     
  7. tirengarfio

    tirengarfio Miembro nuevo

    Registro:
    5 Nov 2008
    Mensajes:
    17
    Likes:
    0
    Hola de nuevo MijT, gracias por tu interes :)

    El codigo que comentas no funciona como yo quiero por lo que comenté antes:

    Ese AND del select no permite que se visualizen los resultados de la busqueda correctamente si solo rellenas una casilla del formulario.
     
  8. MijT

    MijT Miembro de bronce

    Registro:
    12 Oct 2006
    Mensajes:
    1,106
    Likes:
    63
    Es cierto, en ese caso reemplaza AND por OR :)
     
  9. tirengarfio

    tirengarfio Miembro nuevo

    Registro:
    5 Nov 2008
    Mensajes:
    17
    Likes:
    0
    Si reemplazo AND por OR, y en el formulario escribo esto:

    Nombre [Javier]
    Apellido [Perez]

    el navegador visualizara "Javier Garcia". Comprobado.
     
  10. MijT

    MijT Miembro de bronce

    Registro:
    12 Oct 2006
    Mensajes:
    1,106
    Likes:
    63
  11. tirengarfio

    tirengarfio Miembro nuevo

    Registro:
    5 Nov 2008
    Mensajes:
    17
    Likes:
    0
    sigue pasando lo que te comento en el post nº 9.

    ¿Que es lo que has cambiado? ¿me puedes pasar los dos codigos (el antes y el despues del cambio)?
     
  12. MijT

    MijT Miembro de bronce

    Registro:
    12 Oct 2006
    Mensajes:
    1,106
    Likes:
    63
    Lo único que he hecho es cambiar AND por OR, la línea que imprime los datos que antes era así

    echo $nombre $apellido."<br />";

    La he reemplazado por:

    echo $nombre." ".$apellido."<br />";

    Con eso ya funciona bien, ahí te dejé una url para que pruebes, por lo menos a mi me funciona bien, quizás tú estés haciendo algo mal, sería bueno que pegues todo tu código y así ver qué estás haciendo mal.

    Saludos.