Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2006, 19h32   #1
Futur Membre du Club
 
Inscription : avril 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 19
Points : 15
Points : 15
Par défaut [SQL] Comment ne pas exécuter une clause WHERE si une var est nulle

Hello,

J'ai un formulaire de recherche multi-critères, tous les critères ne sont pas obligatoires.

J'ai donc un select du style :

Code :
1
2
3
4
 
$var1 = $_POST['nom'];
$var1 = $_POST['couleur'];
SELECT * FROM base WHERE id='$var1' AND nom='$var2'
Comment faire pour executer cette requete si $var2 est nulle dans ma page ?

Suis-je obligé de tester chaque variable (si j'en ai une 20zaine ça va être long...) avec un

Code :
1
2
3
4
5
 
if($var1!=""){
$sqlwhere = $sqlwhere . " and type = '".$type."'"; 
}
SELECT * FROM base WHERE 1 " . $sqlwhere
N'y aurait-il pas un raccourci mysql pour skiper une clause WHERE si une variable est vide ?
charlysquare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2006, 19h38   #2
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
salut,

et bien tu n'as qu'à simplement construire ta requete à l'aide de if...

Code :
1
2
3
4
5
6
 
$query = "SELECT * FROM latable WHERE 1=1";
 
if (isset($_POST['var']) && $_POST['var'] != "") {
  $query.= " AND var = '" . $_POST['var'] . "'";
}
etc...
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2006, 19h39   #3
Membre confirmé
 
Étudiant
Inscription : avril 2006
Messages : 237
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 237
Points : 299
Points : 299
Tu peux simplement faire un if et deux requêtes différentes selon $var2.
Tipoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2006, 19h45   #4
Futur Membre du Club
 
Inscription : avril 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 19
Points : 15
Points : 15
Ok, donc ya pas plus court.

Merci pour votre aide ;=)
charlysquare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2006, 21h12   #5
Membre du Club
 
Inscription : avril 2005
Messages : 59
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : avril 2005
Messages : 59
Points : 63
Points : 63
Envoyer un message via MSN à ofostier
Par défaut Ca va être difficile

Hello,

et non y a pas plus court
ofostier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h23.


 
 
 
 
Partenaires

Hébergement Web