Hola,
podrias poner un codigo un poko mas claro y no tener q meter tantos IF
no lo he probado pero mas o menos...
Código PHP:
<?
$link=mysql_connect("localhost", "usuario", "contraseña") or die ("no m'he pogut conectar"); // me conecto a la base de dades
$llistat_titols=$_POST['text_titol']; // recullo la variable del titol
$llistat_tipo=$_POST['var_tipologia'];
$llistat_pob=$_POST['var_poblacio']; // recullo la variable del poblacio
$bd=mysql_select_db("molinar",$link) or die ("no puc conectar a la BBDD");
//Wherehan es la varibale donde montaremos nuesta clausula Where
$WHEREHAN='';
//Funcion q mirara si se pone un WHERE o se pone un AND
function FWhere($w) {
return ($w == '') ? ' WHERE ' : "$w AND ";
}
//Miramos la variables
if ($llistat_titol != ''){
$WHEREHAN = Fwhere($WHEREHAN) . " general.titol_general LIKE '%$llistat_titols%'";
}
if ($llistat_tipo != ''){
$WHEREHAN = Fwhere($WHEREHAN) . " general.tipologia_id = '$llistat_tipo'";
}
if ($llistat_tipo != ''){
$WHEREHAN =F where($WHEREHAN) . " general_poblacio_link.poblacio_id = '$llistat_pob'";
}
//puedes imprimir la variable a ver si se te ha montado bien o no
echo $WHEREHAN;
$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
$WHEREHAN";
//aqui ponemos la varible q quedara montada cuando te pasen los campos
//hacemos la consulta
$result1 = mysql_query($query2, $link) or die ("Error en: $query2. " . mysql_error());
//miramos la cantidad de registros
$nreg_result1= mysql_num_rows($$result1);
//si el numero es difernete de 0 entonces mostraremos los resultados
if($nreg_result1 != 0){
?>
<TABLE border="1" align="center" CELLPADDING=1 CELLSPACING=1 bordercolor="#660000" class="text">
<TR>
<TD width="20" class="text">Id</TD>
<TD width="200" class="text">Título</TD>
<TD width="200" class="text">Bajar archivo</TD>
<TD width="20" class="text">Tamaño</TD>
<?
while($row1 = mysql_fetch_array($result1)) {
?>
<tr>
<td> <?=$row1["id_general"];?></td>
<td> <?=$row1["titol_general"];?> </td>
<td> <?=$row1["URL"];?> </td>
<td> <?=$row1["pes"];?> </td>
</tr>
<?
} //fin While
?></table><?
}else{
//si el numero es igual a 0 entonces mostraremos el mensaje de q no hay resultados
echo "No hi ha resultats";
}
mysql_free_result($result1);
mysql_close($link);
?>
faltarian algunas comprobaciones...
espero q te sirva y si tienes alguna duda aqui estamos
saludos