Php: si imbriqué... un casse-tête !
Résolu
Fetide68
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Fetide68 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Fetide68 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je m'entraîne sur l'Ajax, mais j'en arrive à faire des requêtes complexes (sans sql) pour lesquels j'ai du mal à trouver le raisonnement.
Nous avons un site et plus précisément un formulaire qui permet de trouver des informations sur des voitures d'occasion, par exemple...
L'utilisateur va vouloir filtrer ses recherches en recherchant par marque, par carburant, par date, par prix et par kilométrage...
Je rappelle que je n'ai pas recours à sql...
Comment je peux faire pour afficher un résultat en fonction des informations saisies ou non par le visiteur ?
Exemple:
Il existe une façon de simplifier tout ça ???
J'ai essayer en développant et présentant toutes les configurations possibles, mais ça ne marche pas...
Merci d'avance
Je m'entraîne sur l'Ajax, mais j'en arrive à faire des requêtes complexes (sans sql) pour lesquels j'ai du mal à trouver le raisonnement.
Nous avons un site et plus précisément un formulaire qui permet de trouver des informations sur des voitures d'occasion, par exemple...
L'utilisateur va vouloir filtrer ses recherches en recherchant par marque, par carburant, par date, par prix et par kilométrage...
Je rappelle que je n'ai pas recours à sql...
Comment je peux faire pour afficher un résultat en fonction des informations saisies ou non par le visiteur ?
Exemple:
if ($marque != "") alors fais ça, mais if($prix != "") alors il faut aussi faire ça...
Il existe une façon de simplifier tout ça ???
J'ai essayer en développant et présentant toutes les configurations possibles, mais ça ne marche pas...
Merci d'avance
2 réponses
-
Salut !
Ben il suffit de faire, comme le dit le titre, des if imbriques :
<code>If () {
// code
if () {
// autre code
}
}
<code>-
J'ai bien essayé, mais ça ne fonctionne pas...
si ($_GET['marque']==$marque && $_GET['prix']<=$prix && $_GET['carburant']==$carburant) { faire ça... } si ($_GET['marque']==$marque && $_GET['prix']<=$prix ) { faire ça... } si ($_GET['marque']==$marque && $_GET['carburant']==$carburant) { faire ça... } si ($_GET['prix']<=$prix && $_GET['carburant']==$carburant) { faire ça... } si ($_GET['prix']<=$prix) { faire ça... } si ($_GET['carburant']==$carburant) { faire ça... } si ($_GET['marque']==$marque) { faire ça... }
Bref, comme ça mais le croisement ne marche pas... -
comme ça le probleme c'est que si tu rentre dans e premier SI tu rentre aussi dans tout les autres par contre si tu fais avec des sinon si une fois rentrer dans le premier si qui fonctionne tu ne rentrera pas dans les autre
<?Php if ($_GET['marque']==$marque && $_GET['prix']<=$prix && $_GET['carburant']==$carburant) { //faire ça... } elseif ($_GET['marque']==$marque && $_GET['prix']<=$prix ) { //faire ça... } elseif ($_GET['marque']==$marque && $_GET['carburant']==$carburant) { //faire ça... } elseif ($_GET['prix']<=$prix && $_GET['carburant']==$carburant) { //faire ça... } elseif ($_GET['prix']<=$prix) { //faire ça... } elseif ($_GET['carburant']==$carburant) { //faire ça... } elseif ($_GET['marque']==$marque) { //faire ça... } ?> -
-
-
-
-
Oui enfin Ajax veut dire XML aussi, et ton xml c'est une métadonnée donc il faut que ailles la chercher sur une base dans ton cas... ou alors tu as un gros fichier texte avec plein d'informations et tu as une base de données sans le savoir et surtout sans ses avantages comme le sqL...
Bref après si c'est de l'algorithmique quel est le soucis? Le si imbriqué seront lourds mais si le but est d'avoir des critères complexes effectivement les critères conditionnels ne seront pas simple. Sinon il existe d'uatres structures que le
si, sinon et alors. Connait tu le switch qui utilises une liste?
Pour simplifier il est certainement possible de hiérarchiser les critères de recherches?