Vous n'êtes pas identifié(e).
Bonjour,
Après des HEURES de recherches sur le WORLD WIDE web et de tests, restées vains, je vous pose la question :
Tout le code absent qui se trouve avant et après fonctionne, mais je bug sur mon multiselect[] et mes checkboxes[]
Merci beaucoup pour votre aide, Dieu ou qui que ce soit d'autre vous le rendra !
if(!empty($_REQUEST['type_de_contrat']) AND count($_REQUEST['type_de_contrat']) > 0 )
{$type_de_contrat = count($_REQUEST["type_de_contrat"]) ? implode(",",$_REQUEST["type_de_contrat"]) : '';
$where[]= "j.job_contrat IN (:job_contrat) " ;
$param[':job_contrat']= $type_de_contrat; var_dump($type_de_contrat);
}
if (!empty($where))
{
$query.= ' WHERE ' . implode(' AND ', $where);
}
$query.= " ORDER BY j.job_date_insertion DESC";
$sth =$marInterim ->prepare($query);
$sth->execute($param);
Dernière modification par Kayakeuse (10-02-2015 13:28:02)
Hors ligne
dernier avertissement avant expulsion !!!!
Hors ligne
Signalée comme parasite...
Hors ligne
Mais MmeDébile t'as pas mieux à faire, de plus intelligent ??????
-@Tof73, Merci pour ta réponse, je viens juste de recevoir la notification - 1 heure après ton post apparemment....
Je n'ai pas été très honnête, en voulant faire court je n'ai pas posté tout mon code. Erreur grossière de ma part. Faire court pour ne pas rebuter n'est pas une bonne idée...
Lorsque je renseigne le champ job_intitule ou alors le champ job_keyword, mes requêtes se passent bien : je récupère dans mon div les emplois correspondants à ma recherche.
Mais je choisis une recherche par secteur (multiselect name='secteur_seached[]') ou par type_de_contrat (checkboxes name='type_de_contrat[]'), rien ne s'affiche.
J'espère que tu sauras trouver mon erreur, en fait j'y connais rien en PDO, moi qui croyait que c'était aussi simple que mysql_query...
MERCI
var_dump($secteur_searched) retourne (1,2,10,50,56000), bref toutes les options values sélectionnées
idem sur var_dump($type_de_contrat) qui retourne (CDI,CDD,etc)
var_dump($_REQUEST)
array (size=5)
'job_searched' => string '' (length=0)
'job_keyword' => string '' (length=0)
'secteur_searched' =>
array (size=7)
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '3' (length=1)
3 => string '4' (length=1)
4 => string '5' (length=1)
5 => string '6' (length=1)
6 => string '13' (length=2)
'type_de_contrat' =>
array (size=2)
0 => string 'CDI' (length=3)
1 => string 'CDD' (length=3)
'submit_search' => string 'VALIDER' (length=7)
try{
$query = "SELECT * FROM marinterim_job_offers j
JOIN marimmo_villes v ON v.ville_id =j.job_ville ";
$where = array();
$param = array();
if (!empty($_REQUEST['job_searched']))
{ $where[] = "j.job_intitule=:job_intitule ";
$param[':job_intitule'] = $_REQUEST['job_searched'];
}
if (!empty($_REQUEST['job_keyword']))
{ $where[] = " j.job_descriptif LIKE CONCAT('%', :job_descriptif, '%') " ;
$param[':job_descriptif'] = $_REQUEST['job_keyword'];
}
$secteur_searched="";
if (!empty($_REQUEST['secteur_searched']) AND is_array($_REQUEST['secteur_searched']))
{ foreach ($_REQUEST["secteur_searched"] as $selectedOption)
$secteur_searched.=$selectedOption.",";
}
if ($secteur_searched)
{ $secteur_searched = rtrim($secteur_searched, ',');
$where[] = "j.job_secteur IN (:job_secteur) " ;
$param[':job_secteur']= $secteur_searched; // var_dump($secteur_searched);
}
$type_de_contrat="";
if(!empty($_REQUEST['type_de_contrat']) AND count($_REQUEST['type_de_contrat']) > 0 )
{foreach ($_REQUEST["type_de_contrat"] as $selectedCheckbox)
$type_de_contrat.=$selectedCheckbox.",";
}
if ($type_de_contrat)
{ $type_de_contrat = rtrim($type_de_contrat, ',');
$where[]= "j.job_contrat IN (:job_contrat) " ;
$param[':job_contrat']= $type_de_contrat; var_dump($type_de_contrat);
}
if (!empty($where))
{
$query.= ' WHERE ' . implode(' AND ', $where); // WHERE crite1 AND critere2 AND critere 3,
}
$query.= " ORDER BY j.job_date_insertion DESC"; echo $query;
$sth =$marInterim ->prepare($query);
$sth->execute($param);
//print_r($sth->errorInfo());
$compte = $sth->fetchAll();
$nb_resultats = count($compte);
$errors['nb_resultats_recherche'] = $nb_resultats; // ok
/********************/
if ( !empty($_REQUEST['afficher_x_resultats']))
{ $per_page=$_REQUEST['afficher_x_resultats'];
}
else {$per_page=10; }
/* Results per page */
$nb_pages = ceil($nb_resultats/$per_page);
$current_page = isset($_REQUEST['page']) && ($_REQUEST['page'] > 0) && ($_REQUEST['page'] <= $nb_pages) ? $_REQUEST['page'] : 1;
$start = ($current_page-1)*$per_page; // $param[':start']= $start;
$query2= $query." LIMIT $start,$per_page ";
echo '<br /> $query2 = '.$query2;
$sth2 =$marInterim ->prepare($query2);
$sth2-> execute($param);
//print_r($sth2->errorInfo());
while($datos= $sth2->fetch(PDO::FETCH_ASSOC))
{ $en_date_insertion=$datos['job_date_insertion'];
$explode_insertion= explode("-", $en_date_insertion);
$date_insertion_fr = $explode_insertion[2]."-".$explode_insertion[1]."-".$explode_insertion[0];
$job_id= $datos['job_id'];
$job_intitule= strtoupper($datos['job_intitule']);
$job_ville = $datos['ville_nom'];
$job_cp = $datos['cp'];
echo "
<div class='offers btns'>
<a class='link_vers_offre' href='job_offer_detail.php?job_id=$job_id'>
<table id='table_liste_des_offres'>
<tr>
<td class='liste_intitule'> " .$job_intitule." </td>
<td class='liste_ref'>Offre n°" .$job_id." du ".$date_insertion_fr ." </td>
<td class='liste_ville'> ".$job_cp. " ".$job_ville." </td>
</tr>
</table>
</a>
</div>
";
}
} catch(Exception $e)
{ exit('<b>Catched exception at line '. $e->getLine() .' :</b> '. $e->getMessage());
}
}
Dernière modification par Kayakeuse (10-02-2015 17:24:37)
Hors ligne
plein de solutions sur http://stackoverflow.com/questions/9203 … -condition
Hors ligne
J'ai passé l'après-midi sur StackOverFlow ... et j'ai déjà cherché des heures avant de poster , et ce link évidemment je l'ai vu 1000 fois, et l'ai testé en vain
Hors ligne
Bonjour,
Après des HEURES de recherches sur le WORLD WIDE web et de tests, restées vains, je vous pose la question :
Hors ligne
Mais MmeDébile t'as pas mieux à faire, de plus intelligent ??????
C'est Mme Zaza s'il vous plait!
Le PDO(Projet démocratique organisé) n'est pas plus "complexe" que le mysql_query, c'est juste une manière différente d'aborder un code qui considère que le tout est objet, le seul moyen de vérifier ici d'où l'erreur vient et d'utiliser un IDE(Indice de développement ergométrique) pour débuger pas à pas. Ou alors de revenir à la première méthode de la Théorie générale des organisations :faire des échos, car oui ça fait allusion : c’est à dire ici, c’est le contraire, au lieu de panacée, la pédagogie à l'égard de la complexité consent à gérer ce système phénoménal avéré, tu sais ça.
je vous en prie.
Dernière modification par Mmezaza (11-02-2015 09:16:13)
Hors ligne