How can I do a multiple search with many skills arguments ??????
public function searchBySkills($pSkills){
$requete = $this->pdo->prepare("SELECT * FROM candidat WHERE skillsCandidat LIKE :skillsCandidat ");
$requete->bindValue(':skillsCandidat', '%'.$pSkills.'%', PDO::PARAM_STR);
$requete->execute();
$tab = $requete->fetchAll(PDO::FETCH_ASSOC);
$this->listCandidat = array();
foreach ($tab as $row) {
$candidat = new Candidat();
$candidat->fromPost($row);
//var_dump($row);
array_push($this->listCandidat, $candidat);
}
}
The parameter $pSkills is an array
array (size=2)
0 => string 'developper' (length=10)
1 => string 'designer' (length=8)
I used to do like this :
$skills = isset($_POST['skillsCandidat']) ? $_POST['skillsCandidat'] : '';
foreach($skills as $skill){
$CandidatList->searchBySkills($skill);
}
Is there any other way ?? Thanks in advance for help !
$search = array('developper','designer');
$in = str_repeat('?,', count($search) - 1) . '?';
$sql = "SELECT c.* FROM skills s JOIN candidates c
WHERE c.id=s.cid AND s.name IN($in)
GROUP BY c.id";
$search[] = count($search);
$db->prepare($sql)->execute($search);