Php: si imbriqué... un casse-tête !

Résolu
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   -  
Fetide68 Messages postés 745 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:

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
A voir également:

2 réponses

le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   1 057
 
Salut !

Ben il suffit de faire, comme le dit le titre, des if imbriques :

<code>If () {
// code
if () {
// autre code
}
}
<code>
1
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
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...
0
magicshark Messages postés 402 Date d'inscription   Statut Membre Dernière intervention   13
 
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...
}
?>
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
C'est un peu ce que je voulais dire, mais j'imaginais que je pouvais faire une fonction qui ferait toutes les comparaisons nécessaires, histoire de ne pas en oublier une... Sinon t'es bon pour chercher un moment celle qui manque !
0
le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   1 057
 
Je comprend pas : là tu fais sois l'un soit l'autre, y'a aucune imbrication ?

Et si tu fais un switch() sans utiliser de "break", ça marche pas ?
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
J'ai réussi à le faire, mais j'aurais aimer trouver une fonction php...

C'est pour entraîner la logique et ma compréhension du php...
0
needles
 
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?
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
C'est exactement ça, j'utilise XML avec Simple XML et j'ai besoin de faire ces formules complexes... Je voulais juste savoir si je ne pouvais pas faire une classe ou une fonction qui pourrait m'aider à m'en sortir (c'est pas de la flême), car la c'est vraiment casse-tête...
0