PDO / Mysqli if (!empty) $query.= WHERE IN

Mensajes
1
Puntuación de reacción
0
Hola a todos, Buenas,

Llevo 4/5 días luchando con SELECT WHERE IN en pdo....
Quiero que mysql devuelva los resultados correspondientes a los valores seleccionados en mi multiselect Y/O en mis checkboxes (+ Y/O en mis otros campos).
Mi problema se halla en el WHERE IN dentro de mis condiciones PDO.

Si alguién sabe como resolver este caso, aunque no sea con pdo sino mysqli, estoy interesada... Y se me podeís enseñar como se hace, os agradecería muchísimo !!!

Gracias por anticipado,


Código:
<select multiple="multiple" name="secteur_searched[]" >
 <option value="1">Accueil - Secrétariat - Fonctions Administratives</option>
 <option value="2">Achats - Juridique - Qualité; - RH - Direction</option>
     etc...
 </select>
 
<input type="checkbox" name="type_de_contrat[]" value="CDI" >     
<input type="checkbox" name="type_de_contrat[]" value="CDD" >
 
 
try{
$query =  "SELECT * FROM interim_job_offers j
          JOIN villes v ON v.ville_id =j.job_ville  ";
 $where = array();
 $param = array();
  
 if (!empty($_REQUEST['secteur_searched']) AND is_array($_REQUEST["secteur_searched"]) ) // esta parte
    {
     $where[] = "j.job_secteur IN (:job_secteur)";
     $param[":job_secteur"] = "'".implode("','",    $_REQUEST['secteur_searched'])."'";
    }
 
 if(!empty($_REQUEST['type_de_contrat']) AND count($_REQUEST['type_de_contrat']) > 0 ) // y esta
   {
    $where[] = "j.job_contrat IN (:job_contrat)";
    $param[":job_contrat"] = "'".implode("','", $_REQUEST['type_de_contrat'])."'";
   }   
    
if (!empty($where))
   {$query.= ' WHERE ' . implode(' AND ', $where);
   }
 
 $query.= " ORDER BY j.job_date_insertion DESC";
  
$sth =$mInterim ->prepare($query);
$sth->execute($param);
 
Arriba