Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2011, 04:56
Avatar de crissrocca
crissrocca
 
Fecha de Ingreso: febrero-2011
Mensajes: 51
Antigüedad: 13 años, 2 meses
Puntos: 1
Problemas con Consulta Multiple

buenas, estoy generando una consulta de la siguiente manera:

Código PHP:
//recogo las variables desde el formulario.
        
$catid $_GET['catid'];
    
$subcatid $_GET['subcatid'];
    
$subcat2id $_GET['subcat2id'];
    
$formato $_GET['formato'];
    
$location $_GET['location'];

//Realizo las consultas y cuento los ID para crear la paginacion en la web
               
$resultados mysql_query("SELECT id FROM phpbazar_ads WHERE publicview=1 AND catid='".$catid."' OR subcatid='".$subcatid."' OR subcat2id='".$subcat2id."' OR formato='".$formato."' OR location='".$location."' ");
        
$total_registros mysql_num_rows($resultados); 
        
$resultados mysql_query("SELECT * FROM phpbazar_ads WHERE publicview=1 AND catid='".$catid."' OR subcatid='".$subcatid."' OR subcat2id='".$subcat2id."' OR formato='".$formato."' OR location='".$location."' ORDER BY precio ASC LIMIT $inicio, $registros");
        
$total_paginas ceil($total_registros $registros);

//Desde aqui si existen datos genero un WHILE para mostrar los datos. 
//...... 
Actualmente la pagina recoge correctamente las variables y si realizo la QUERY con solo un valor, por ejemplo "publicview=1 AND catid='".$catid."'" funciona correctamente.

El problema es que necesito hacerla de tal manera que busque dentro de la tabla todo los campos que coincidad con todos sus valores. Teniendo en cuenta que el cliente puede seleccionar todos los campos en su formulario o a lo mejor solo selecciona 1 valor.

he probado de la siguiente manera:
Código PHP:
$sql "SELECT * FROM phpbazar_ads WHERE publicview=1";
if(
$_GET['catid'] != '')$sql .= " AND catid LIKE '%".$_GET['catid']."%'";
if(
$_GET['subcatid'] != '')$sql .= " AND subcatid LIKE '%".$_GET['subcatid']."%'";
if(
$_GET['subcat2id'] != '')$sql .= " AND subcat2id LIKE '%".$_GET['subcat2id']."%'";
if(
$_GET['formato'] != '')$sql .= " AND formato LIKE '%".$_GET['formato']."%'";
if(
$_GET['location'] != '')$sql .= " AND location LIKE '%".$_GET['location']."%'";
$sql .= "ORDER BY fecha DESC";

$resultados mysql_query($sql);

//y luego el resto del codigo... 
Pero no realiza la accion.

A ver si alguien sabe como hacer la QUERY consultando las variables que han llegado y mostrando los campos que coinciden en todas esas variables.

Gracias!