condition pas tres commune - PHP - Programmation
Marsh Posté le 05-04-2005 à 16:33:11
je demande ça parceque là j'ai un cas ou j'aimerai economiser du code, j'ai une liste de variables et j'aimerai eviter une succession de if elseif etc etc en fait j'aimerai faire un truc qui equivaut à ça :
if(!empty($nom))
{
$valeur=$nom;
}
elseif(!empty($prenom))
{
$valeur=$prenom;
}
elseif(!empty($date))
{
$valeur=$date;
}
etc etc etc...
j'aimerai le simplifier du genre
$valeur=!empty($nom)||!empty($prenom)||!empty(date); // ou un truc dans le genre !!!
(là j'invente completement ! mais je sais pas si ce genre de syntaxe existe en php...)
}
Marsh Posté le 05-04-2005 à 16:39:42
http://www.php.net/manual/fr/langu [...] arison.php
voir le chapitre "opérateur ternaire"
Marsh Posté le 05-04-2005 à 16:48:30
merci !!!
Citation : L'expression (expr1) ? (expr2) : (expr3) est évaluée à expr2 si expr1 est évalué à TRUE, et expr3 si expr1 est évalué à FALSE. |
.... et dans ce cas là je peux mettre plusieurs expr d'affilée ??? ou juste deux ?
Marsh Posté le 05-04-2005 à 19:17:26
Tu peux les inbriquer si cela te chante, mais bon, a part "obfusquer" ton code je ne vois pas trop l'interet de la chose ...
Marsh Posté le 06-04-2005 à 12:37:51
et bien c pourtant simple... j'ai fait un systeme de consultation de base de donnée à champs multiples...
1° l'utilisateur choisir quel mode de recherche il souhaite (par nom, par prenom, par date...)
2° un champ de formulaire s'affiche en fonction du mode de recherche choisi
3° il tape un masque de recherche
4° ça affiche le resultat de la recherche
5° il peut classer dans l'order alphabetique ou numerique en cliquant sur le titre de la colonne qu'il veut classer (order_by)
pour ça je procede de la facon suivante :
Code :
|
donc comme vous pouvez le constater... chaque variable est séparée (nom, prenom, date.. etc etc etc)
hors finalement j'ai besoin que de 3 variables : consult_by, valeur et order_by
... et j'ai pas envie de tout recoder !
alors j'aimerai que $valeur prenne la valeur du champ qui n'est pas vide (nom, prenom, date...)
(je sais c'est tordu !!! mais ça peut servir !)
Marsh Posté le 06-04-2005 à 13:22:05
Code :
|
Sans les sécurités d'usage
Ça, c'est seulement pour choisir le motif de recherche, après, tu fais la même chose pour le tri en initialisant le $order_by
En fait, j'ai pas compris qu'est-ce qui va pas
Marsh Posté le 06-04-2005 à 13:32:38
Je vois franchement pas l'intéret d'utiliser cette notation ...
A part tout complexifier a la relecture, debuggage, ... ca n'apporte rien de plus.
Si encore c'était plus rapide a tapper ... mais meme pas ...
Je déconseille a mort.
Marsh Posté le 06-04-2005 à 13:37:13
Ah, j'ai compris le soucis
Tu veux, en un minimum de commande possible, choisir la seule (?) valeur non-vide du tableau $_POST.
Code :
|
Voila, ça nous fait un truc super-condensé super-pas-sécurisé, mais moi je vois que ça
Marsh Posté le 06-04-2005 à 13:39:40
finalement j'ai été aussi vite à changer tous les noms de mon formulaire en
<input name="valeur" type="text" id="valeur">
et de suivre comme suit :
Code :
|
comme ça je garde mes variables en GET :
Code :
|
Marsh Posté le 06-04-2005 à 13:41:06
Worldofdada a écrit : Je vois franchement pas l'intéret d'utiliser cette notation ... |
Tu parles de quoi ?
PS : je réponds seulement au topic, j'ai pas fait l'apologie de ma notation
Marsh Posté le 06-04-2005 à 13:43:48
Arf, finalement j'avais rien compris à la question
Marsh Posté le 06-04-2005 à 13:45:10
si si je pense que tu avais bien compris !
mais c moi qui ait devié le probleme autrement et de façon plus correcte (je pense)
en fait je me suis mal exprimé depuis le debut...
en fait j'avais fait un truc du genre (en resumé):
Code :
|
hors finalement j'ai pas besoin de séparer ces champs en donnant un nom différent à chacun des mes champs input sachant qu'un seul n'apparait de toutes façon... ce qui m'interessait c'est d'en recuperer la valeur (vu que je sais deja quel type de recherche je veux grâce à mon $_SESSION['consult_by']
donc j'ai remplacé mes name="nom", name="prenom", name="date"... Par name="valeur" ....
... comme ça je n'ai plus besoin de faire ce que j'ai demandé au debut qui est de tester si une valeur existe dans chaque champ pour attribuer cette valeur à ma variable "$valeur".... puisqu'au final je n'ai plus qu'un seul champ <input type="text" name="valeur">
... compliqué non ?
Marsh Posté le 05-04-2005 à 16:26:03
Quelqu'un pourrait-il m'aider ou me donner une adresse d'un tutos parlant de ce genre de conditions :
echo (($lg==1)?"fr.gif":"uk.gif" ));
j'aimerai savoir dans quels cas on peut les utiliser (bien que je comprends tres bien l'utilisation dans ce cas là.. j'aimerai en connaitre la limite et les possibilités)
Merci d'avance
Freed