Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/12/2005, 16:15
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Debes crear sentencias SQL de forma dinámica para cubrir los casos de esas dos variables PHP que puedan no tener valor . En esos casos tu sentencia SQL debe quedar sin el bloque SQL: idisla='$_POST[isla]' AND ó (idcat='$_POST[categoria]')

Es decir ..

Código PHP:
// Pre-definir variables vacias...
$categoria_sql='';
$isla_sql='';
$operador_sql='';

// Si tiene valor "categoria" .. añado el SQL correspondiente.
if (!empty($_POST['categoria'])){
    
$categoria_sql="idcat='".$_POST['categoria']."'";
}

// Si tiene valor "isla" .. añado el SQL correspondiente.
if((!empty($_POST['isla'])){
   
$isla_sql="idisla='".$_POST['isla']."'";
}

// Si "isla" y "categoria" tienen valor .. coloco el operador "AND" ...
if (!empty($_POST['isla']) && !empty($_POST['categoria'])){
$operador_sql="AND";
}


$cons_sql "SELECT * FROM temas WHERE $isla_sql $operador_sql $categoria_sql AND (titulo LIKE '%$_POST[criterio]%') OR (texto LIKE '%$_POST[criterio]%') AND (validado=1)) ORDER BY fechainsercion DESC"
Revisa haciendo echo $cons_sql en todas las combinaciones posibles si la sentencia SQL que se compone es la que esperas.

Un saludo,