Besoin d'aide sur une boucle "if else if else" - PHP - Programmation
Marsh Posté le 29-12-2010 à 10:33:18
Merci, ça fonctionne à présent pour le cas "aucun stage", mais si un stagiaire a effectué un seul stage, ça m'affiche aussi "aucun stage". Autrement dit, les lignes 23 à 26 ne fonctionnent pas
EDIT : j'ai rien dit, ça fonctionne aussi !
Marsh Posté le 29-12-2010 à 10:39:13
Pourquoi tu fais des if else dans tous les sens ?
ils font tous la même chose
Un simple :
Code :
|
Ensuite, ton affstage.php qui fait appel a des variables définies ailleurs, c'est saaaâaaaale.
fait une fonction afficheUnStage($nom_stage,$lieux,$dispositif) par exemple
Marsh Posté le 29-12-2010 à 10:52:22
J'avoue que j'ai du mal avec les fonctions Ca serait du genre :
Code :
|
Désolé si la question parait bête...
Marsh Posté le 29-12-2010 à 11:43:44
oui , c'est ça ( attention aunom des variables, $dispositif et $disp, $lieux ,...)
Marsh Posté le 29-12-2010 à 11:50:19
Ok, encore une question bête (mais il parait qu'il n'y a pas de question bête) :
- je cale ma fonction dans un fichier fonctions.php
- dans aff_stage.php, je fais donc un include sur fonctions.php
- et j'ai juste à marquer la fonction afficheUnStage()?
j'ai pas encore franchi le cap, je ne programme pas en POO, juste en fonctionnel. Merci pour ta patience et ton aide !
Marsh Posté le 29-12-2010 à 13:08:46
tu n'inclues plus aff_stage, mais juste fonction.php ( une seule fois)
quand tu as besoin de l'utiliser tu l'appelle avec les paramètres qui vont bien,genre :
afficheUnStage($row['nom_stage'],$row['lieux'],$row['dispositif'])
Marsh Posté le 29-12-2010 à 13:36:59
à la place des if else à la chaîne, renseigne toi sur "Switch" en php
http://php.net/manual/fr/control-structures.switch.php
Code :
|
Marsh Posté le 29-12-2010 à 14:54:14
@antac
J'utilise déjà le switch pour tester les différents boutons d'un formulaire
(exemple case enregistrer
case mise à jour
case annuler)
Mais y a t'il un réel intérêt à utiliser switch plutôt que if else? Car en terme de lignes, ça se vaut, en lisibilité aussi, du moins je trouve.
@flo850
Ok, je vais tester de suite ! Merci.
Marsh Posté le 29-12-2010 à 15:04:57
Le switch est nettement plus lisible plutôt que 3 km de if else if imbriqués.
A la relecture , on comprend que la décision est restreint à ce bloc de code et il est visuellement facile de checker les cas différents. Et en plus, c'est plus simple à modifier
Marsh Posté le 30-12-2010 à 13:38:02
En fait, je l'aurai fait comme ça moi
Code :
|
Marsh Posté le 30-12-2010 à 14:07:53
Ca fonctionne à merveille ! Et c'est très lisible, merci antac.
Marsh Posté le 31-12-2010 à 11:07:57
Et le jour où tu as un $nb_stage qui vaut 5 ?
Marsh Posté le 31-12-2010 à 11:43:14
Ca ne devrait à priori pas arriver, un même stagiaire fait généralement 1 ou deux stages, dans des rares cas 3 stages, et je n'ai encore jamais vu 4 stages. Si jamais cela devait arriver, il me suffit de changer cette valeur
Code :
|
Marsh Posté le 31-12-2010 à 11:45:52
Non mais c'était une question rhétorique hein
Tout ça pour dire qu'il faut juste remplacer cette ligne par
Code :
|
comme l'a dit flo850
Ca ne coûte rien, et ça t'évitera de devoir débugguer (toi ou ton successeur) le jour où quelqu'un fait 5 stages
Marsh Posté le 31-12-2010 à 14:47:11
Entendu ! C'est vrai qu'il faut tout de suite prendre ces bonnes habitudes. Et c'est encore plus simple à la lecture. J'essaye en ce moment de simplifier au max mon code, car j'étais arrivé à une véritable usine à gaz... Merci pour l'astuce !
Marsh Posté le 31-12-2010 à 15:17:13
C'est sur, je donnais une simple retranscription de ton if/else/if...
Marsh Posté le 29-12-2010 à 10:02:20
Bonjour,
J'essaye de passer une BD Access sur SQL avec une interface PHP. Cette BD est très complexe, et je progresse petit à petit. Pourtant, le résultat que j'obtiens sur une boucle if, else if, else est assez bizarre, et je patine depuis quelques temps pour m'en dépatouiller. Je sollicite donc votre aide pour un p'tit coup de pouce. Voilà la partie qui pose problème :
Les trois premières boucles fonctionnent bien, si j'ai 4 stages, 3 stages ou 2 stages, l'affichage des stages fonctionnent. Les deux dernières boucles ne fonctionnent pas si 1 stage ou aucun stage. Je n'ai même pas l'include de aff_stage.php, et encore moins un message d'erreur.
Voilà le code de aff_stage.php si ça vous ait utile.
Franchement, je tourne en rond, et je ne trouve aucune solution...
Merci de votre aide !