Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2007, 11:40
promedea
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
busqueva avanzada complicada¿

Bueno, a ver si me podeis ayudar ya que soy novata, no se si este es el foro adecuado para mi consulta o es mejor el de MySQL.
Resulta que estoy haciendo un buscador avanzado que me busca segun tres criterios: título, tipologia y población.
He creado esta búsqueda de SQL
Código PHP:
 <?
  $query2
="SELECT DISTINCT general.id_general, general.titol_general, general.URL, general.pes, general.tipologia_id, general_poblacio_link.poblacio_id, general_poblacio_link.general_id
 FROM general
 INNER JOIN
 general_poblacio_link ON general.id_general=general_poblacio_link.general_id
 WHERE general.titol_general LIKE '%$llistat_titols%' AND general.tipologia_id = '$llistat_tipo' AND general_poblacio_link.poblacio_id = '$llistat_pob'"
// faig la cerca
 
$result1 mysql_query($query2$link) or die ("Error en: $query. " mysql_error());
?>
Luego muestro los resultados dentro de una tabla con el siguiente cógido
Código PHP:
<?
 
while($row1 mysql_fetch_array($result1)) {
      
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td></tr>"$row1["id_general"],$row1["titol_general"],$row1["URL"],$row1["pes"]);
   }
 
   
mysql_free_result($result1);
   
mysql_close($link);
 
?>
Hasta ahí todo correcto y me funciona a la perfección. El problema es que yo quiero que si en el campo título se queda en blanco me busque por los otros dos criterios, sin tener en cuenta el título. Si se deja en blanco la tipologia, que me busque por título y por población, etc. Y si se deja todo en blanco que me muestre todos los resultados.

No tengo idea de php así que agradecería alguna ayuda con la sintaxis.
Supongo que tendria que hacer condicionales del tipo
si "titol" = ""
entonces hacer query de "tipologia" y "poblacion"
si ...
entonces ...
si ..
entonces ...
haciendo todas las posibles combinaciones o algo parecido.
Saludos y gracias anticipadas