Bonjour,
aujourd'hui j'ai fait un module de recherche plus au moins approfondi, j'ai fait ma requete SQL tous ce passe plus au moins bien lorsque je rempli tous les champs, mais quand je ne rempli pas un champ sa bloque sa me renvoie rien, j'aimerai effectuer une recherche avec ou sans critéres, voici le module:
Voici mon code (image):
Voici mon code (texte):
public function search($name, $age, $taille, $poid, $ville, $sexe, $boobs, $couple, $ethnic, $orientation) {
$db = $this::getInstance();
$p_age = explode('-', $age);
$p_taille = explode('-', $taille);
$p_poid = explode('-', $poid);
$age_1 = $p_age[0];
$age_2 = $p_age[1];
$taille_1 = $p_taille[0];
$taille_2 = $p_taille[1];
$poid_1 = $p_poid[0];
$poid_2 = $p_poid[1];
$sql = $db->query(
"SELECT * FROM users_escort INNER JOIN users
WHERE users.couple = '".$couple."'
AND users.lastname LIKE '%$name%'
AND users_escort.age BETWEEN $age_1 AND $age_2
AND users_escort.size BETWEEN $taille_1 AND $taille_2
AND users_escort.weight BETWEEN $poid_1 AND $poid_2
AND users_escort.gender = '".$sexe."'
AND users_escort.boobs_size = '".$boobs."'
AND users_escort.ethnic = $ethnic
AND users_escort.city = $ville
AND users_escort.sexual_orientation = '".$orientation."'
AND users_escort.user_id = users.id
"
);
while($data = $sql->fetch(PDO::FETCH_OBJ)) {
$search[] = $data;
}
return $search;
}
Merci de bien vouloir m'aider.
Il faut rajouter des conditions et construire ta requête en fonction car sinon tu va avoir des
AND users_escort.city = AND users_escort.ethnic =
Ce qui n'est pas valide
Grafikart te parle de faire ce genre de chose
$sql = "SELECT * FROM table WHERE ";
if condition
$sql.= .....
elseif
$sql.=...
else
$sql.=....