Foros del Web » Programando para Internet » PHP »

consultas mysql compuestas por varios campos

Estas en el tema de consultas mysql compuestas por varios campos en el foro de PHP en Foros del Web. Hola a todos Tengo varios campos en mi BD y necesito hacer una busqueda en todos los campos, por ejemplo si quiero buscar por id ...
  #1 (permalink)  
Antiguo 16/02/2011, 06:40
 
Fecha de Ingreso: julio-2006
Ubicación: Concepción
Mensajes: 66
Antigüedad: 17 años, 9 meses
Puntos: 0
consultas mysql compuestas por varios campos

Hola a todos

Tengo varios campos en mi BD y necesito hacer una busqueda en todos los campos, por ejemplo si quiero buscar por id o por empresa, o por contacto, todo eso va en un mismo formulario.

Clientes
----------

id
empresa
contacto


$result = mysql_query("SELECT * FROM clientes WHERE
id LIKE '%$id%' OR
empresa LIKE '%$empresa%' OR
contacto LIKE '%$contacto%' ");

con OR no funciona porq no es muy preciso...

aveces se ingresa solo el nombre de empresa..y el resto queda en blanco..


Saludos
  #2 (permalink)  
Antiguo 16/02/2011, 07:03
 
Fecha de Ingreso: julio-2006
Ubicación: Concepción
Mensajes: 66
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: consultas mysql compuestas por varios campos

Lo solucione.

$result = mysql_query("SELECT * FROM clientes WHERE (id_cliente= '$id_cliente' OR id_cliente='') AND (fac= '$fac' OR fac='') ");
  #3 (permalink)  
Antiguo 16/02/2011, 07:28
 
Fecha de Ingreso: septiembre-2009
Mensajes: 4
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: consultas mysql compuestas por varios campos

Si entiendo bien lo que necesitas es combinar los campos para obtener una consulta mas acertada.

lo que tendrías que hacer es pre-formatear la consulta antes de ejecutarla.

por ejemplo.

// Asignamos los valores del formulario o url a las variables.
$id = $_GET['id'];
$empresa = $_GET['empresa'];
$contacto = $_GET['contacto'];

//luego realizas el ensamblaje

$sql = "SELECT * FROM clientes WHERE valido = 'V' ";

// vamos concatenando cada una de ellas.
if($id <> '')
{
$sql .= " AND id LIKE '%$id%' "
}

if($empresa <> '')
{
$sql .= " AND empresa LIKE '%$empresa%' "
}

if($contacto <> '')
{
$sql .= " AND contacto LIKE '%$contacto%' "
}

// y ahora que formateamos la consulta la ejecutamos

$consulta_sql = mysql_query($sql);

// en un bucle imprimimos todos los resultados.

while($registro_consulta = mysql_fetch_assoc($consulta_sql))
{
echo "Empresa:".$registro_empresa['id']." - ".$registro_consulta['empresa']."<br />";
}

// FIN

Espero que te sirva, un saludo.
es mi primer posteo!! =)

Etiquetas: campos, mysql
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 00:38.