Foros del Web » Programando para Internet » PHP »

Consultar varios campos de una tabla mysql

Estas en el tema de Consultar varios campos de una tabla mysql en el foro de PHP en Foros del Web. Hola amigos les pido ayuda con lo siguiente: Tengo este código que funciona bien: Código PHP: <?php       if (isset( $_POST [ 'busca' ]))   { ...
  #1 (permalink)  
Antiguo 08/03/2012, 08:39
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 20 años, 5 meses
Puntos: 2
Consultar varios campos de una tabla mysql

Hola amigos les pido ayuda con lo siguiente:

Tengo este código que funciona bien:

Código PHP:
<?php
  
  
if (isset($_POST['busca']))
  {
   
$consulta="select * from campo where nombre direccion like '%".$_POST['busca']."%'"
   }else{ 
   
$consulta="select * from campo";
   }
Sin embargo, a aparte de "nombre" tambien existen otros campos dentro de la tabla tales como direccion y telefono.

Como podría hacer para que me busque tambien en ellos? porque he intentado varias cosas sin suerta alguna hasta el momento.

Gracias de antemano por cualquier ayuda prestada.
  #2 (permalink)  
Antiguo 08/03/2012, 08:59
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Consultar varios campos de una tabla mysql

Hola, prueba con esta busqueda, revisa las comillas porque he ido copiando partes y no se si estan colocadas correctamente.


Cita:
select * from campo where (direccion like '%".$_POST['busca']."%) OR( nombre like '%".$_POST['busca']."%') or (telefono like '%".$_POST['busca']."%'")
  #3 (permalink)  
Antiguo 08/03/2012, 09:04
 
Fecha de Ingreso: agosto-2011
Ubicación: la paz
Mensajes: 83
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: Consultar varios campos de una tabla mysql

$consulta="select * from campo where nombre like '%".$_POST['busca']."%' and direccion like '%".$_POST['busca']."%' and telefono like '%".$_POST['busca']."%'";
  #4 (permalink)  
Antiguo 08/03/2012, 09:04
 
Fecha de Ingreso: agosto-2011
Ubicación: la paz
Mensajes: 83
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: Consultar varios campos de una tabla mysql

jejeje se adelanto saludos
  #5 (permalink)  
Antiguo 08/03/2012, 09:09
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Consultar varios campos de una tabla mysql

hay una diferencia y es que amils21 ha dado por hecho que querias que coincidiesen todos los campos y yo he creido que te referias a buscar coincidencias en cualquiera de ellos. XD mira a ver cual te va mejor un saludo.
  #6 (permalink)  
Antiguo 08/03/2012, 17:08
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Consultar varios campos de una tabla mysql

Amigos les agradezco enormemente su ayuda aunque ninguna de las dos soluciones me funcionó.

la primera porque dice php que hay un error y la segunda porque no busca.
  #7 (permalink)  
Antiguo 08/03/2012, 17:52
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Consultar varios campos de una tabla mysql

Tendrás que comprobar todos los campos con el Like como te han dicho arriba y según te convenga usar Or, And o Xor, ya que para poder usar el like tiene que tener algo con lo que comparar/buscar.

Código SQL:
Ver original
  1. expr LIKE pat

http://dev.mysql.com/doc/refman/4.1/...#operator_like
  #8 (permalink)  
Antiguo 08/03/2012, 18:20
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Consultar varios campos de una tabla mysql

el problema es que el like solo funciona con un campo y con el resto no y he intentado varias soluciones y no entiendo porque. Es decir, apenas empiezo en php pero se supone que buscar en todos los campos deberìa ser relativamente bàsico y no se porque solo una parte del còdigo funciona.
  #9 (permalink)  
Antiguo 08/03/2012, 19:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consultar varios campos de una tabla mysql

No es básico.
Estás confundiendo PHP con SQL. El SQL es el que realiza las consultas en la base, y como es un lenguaje de consultas y no de programación, no tiene capacidad para buscar lo que no le indican que busque.
El problema es que si hubiese un método tal que hiciera esa busqueda, el algoritmo sería infinito, porque infinitas son también las combinaciones posibles de diseño de una tabla.
Hazlo simple y procura respetar las reglas del SQL. Construye la sentencia que se requiera para el caso en forma dinámica (agregandole las condiciones según se necesiten) y verás que el DBMS es más eficiente de lo que piensas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 08/03/2012, 20:59
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Consultar varios campos de una tabla mysql

jeje si, no es tan bàsico desde que lleve dias buscando la respuesta y nada jajaja. Es dificil el asunto ya lo sè.
  #11 (permalink)  
Antiguo 08/03/2012, 21:28
 
Fecha de Ingreso: enero-2012
Ubicación: Mexico Df
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 6
Respuesta: Consultar varios campos de una tabla mysql

podria ser


Código &quot:
Ver original
  1. if($_POST['nombre']==""){
  2.    $nombre="";
  3. }else{
  4.  $nombre = "nombre like".$_POST['nombre'];
  5.  
  6. if($_POST[direccion]==""){
  7.    $direccion="";
  8. }elseif{$_POST['nombre']==""){
  9. $direccion="direccion like ".$_POST['nombre'];
  10. } else{
  11. $direccion=" and direccion like ".$_POST['nombre'];
  12. }
  13.  
  14.  
  15. $sql=mysql_query("SELECT * FROM campo $nombre $direccion ");

Espero que se lo que necesitas

Saludos
  #12 (permalink)  
Antiguo 08/03/2012, 21:36
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Consultar varios campos de una tabla mysql

gracias por tu ayuda pero no entiendo tu código, de donde seleccionas la base?
  #13 (permalink)  
Antiguo 08/03/2012, 21:43
 
Fecha de Ingreso: enero-2012
Ubicación: Mexico Df
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 6
Respuesta: Consultar varios campos de una tabla mysql

basicamente estoy comprobando si los campos estan vacios o no y si estan vacios la variable $nombre y $direcicon van vacions entonces la consulta va

("SELECT * FROM campo")

pero si direccion lleva datos por POST la consultado cambia a

("SELECT * FROM campo WHERE direccion like $_POST['direccion']");

si ambos campos llevan datos por POST queda

("SELECT * FROM campo WHERE nombre like $_POST['nombre'] and direccion like $_POST['direccion']");


Esto pensado que tienes un formulario con dos campos de texto
  #14 (permalink)  
Antiguo 08/03/2012, 21:55
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Consultar varios campos de una tabla mysql

Mi formulario es este

<form action="index.php" method="post">
<input name="busca" type="text" id="busca">
<input name="submit" value="Buscar" type="submit" />
</form>

Solo tengo un campo de texto.
  #15 (permalink)  
Antiguo 08/03/2012, 22:12
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 20 años, 5 meses
Puntos: 2
Respuesta: Consultar varios campos de una tabla mysql

acabé de dar con la solución. Quizás el problema era de sintaxis aplicando las soluciones que me daban.

Código PHP:
if (isset($_POST['busca']))
  {
   
$consulta="SELECT * FROM campo WHERE nombre LIKE '%".$_POST['busca']."%' OR direccion LIKE '%".$_POST['busca']."%'"
   }else{ 
   
$consulta="select * from campo";
   } 

Muchas gracias a cada uno de ustedes por su atención y su amabilidad. Gracias a gente como ustedes uno aprende más.

Etiquetas: campos, consultar, mysql, tabla
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




La zona horaria es GMT -6. Ahora son las 11:55.