Module de recherche

Par MehdiWEB, il y a 11 ans


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.

5 réponses

Grafikart, il y a 11 ans

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

MehdiWEB, il y a 11 ans

Si le champ et vide, je devrais mettre quoi aprés le égal?

Carouge10, il y a 11 ans

Dans ce cas, ne mettez pas la conditions si le champ est vide.

kewai, il y a 11 ans

Grafikart te parle de faire ce genre de chose

$sql = "SELECT * FROM table WHERE "; if condition $sql.= ..... elseif $sql.=... else $sql.=....
MrSaooty, il y a 11 ans

Tu check quelle critères sont demandés et en fonction de ça tu construis ta requête SQL