par
ouryhamdalaye » 01 janv. 2014, 11:20
Bonjour,
J'ai une petit sujet de TP.
Il s'agit de faire un code PHP qui permet de donner à l'utilisateur le nombre de calories qui composent l'assiette qu'il va choisir.
Il y a plusieurs règles mais pour l'instant je suis à la règle concernant l'Apéritif. Ce que je n'arrive pas à faire c'est récupérer les calories dans le tableau en fonction de ce que l'utilisateur choisit comme apéritif et l'additionner à la variable $calorieDuRepas.
Voici le code que j'ai fait pour le moment :
function AfficheToutLeMenu($LeRepas){
foreach($LeRepas as $categorie=>$souscategorie){
echo "<br/>".$categorie." :<br/><br/>";
if(is_array($souscategorie)){
foreach($souscategorie as $nomAliment=>$calories){
echo $nomAliment." : ".$calories." calories <br/>";
}
}
/*le else n'est pas vraiment utile dans ce cas puisque la souscategorie est toujours un array la mais je le mets quand même...*/
else
{
echo $categorie." : ".$souscategorie." calories <br/>";
}
}
}
$Repas=array("Aperitifs"=>array("Noix de cajoux"=>612,"Pistaches"=>617,"Oeufs de lump"=>125),
"Boissons"=>array("Bierre 33cl"=>178,"flule champagne"=>78,"verre coca"=>180,"perrier"=>0,"verre Whisky"=>384),
"Dessert"=>array("crème glacé fraise"=>192,"crèpe nature"=>227,"pain au chocolat"=>410,"sorbet"=>90),
"Coquillages"=>array("12 huitres"=>110,"moules"=>70,"gambas"=>98),
"Poissons"=>array("anguille"=>250,"caviar"=>275,"daurade"=>77,"perche"=>112,"colin"=>92),
"Viandes"=>array("agneau"=>280,"andouillette"=>320,"bifteck de boeuf"=>200,"mouton"=>265),
"Volailles"=>array("poulet"=>150,"dinde"=>260),
"Feculents"=>array("riz"=>90,"pain blanc"=>255,"pates"=>90,"pomme de terre"=>90),
"Legumes"=>array("aubergines"=>29,"brocolis"=>34,"champignons"=>28,"chou"=>28,"Haricot vert"=>40),
"Fruits"=>array("banane"=>90,"fraise"=>36,"mangue"=>62,"pomme"=>52)
);
//J'affiche tout le menu
AfficheToutLeMenu($Repas);
//compteur de calories
$caloriesDuRepas=0;
echo "<br/>";
echo "Voulez vous un Aperitif ?<br/>";
echo "<br/>";
$Aperitif="oui";
//Ceci n'est qu'un test il n y a pas encore de saisie d'utilisateur, je mets donc les valeurs moi même
if($Aperitif=="oui"){
//numerotation me sert juste à affciher une liste 1) 2) 3), je l'enleverai une fois que j'aurais mis de l'html
$numerotation=0;
//J'affiche les Aperitifs
foreach($Repas["Aperitifs"] as $nomAliment=>$calories){
echo ($numerotation+1).") ".$nomAliment." : ".$calories." calories <br/>";
$numerotation++;
}
echo "Quel Aperitif prennez vous ? <br/>";
$choixAperitif=1;
//Ceci n'est qu'un test il n y a pas encore de saisie d'utilisateur, je mets donc les valeurs moi même
echo "Votre choix : ".$choixAperitif."<br/>";
switch($choixAperitif){
/* **************zone concernée***************** */
case 1 : foreach($Repas["Aperitifs"] as $nomAliment=>$calories){
$cal=$nomAliment[1];
}
$caloriesDuRepas=$caloriesDuRepas+$cal;
}
/* **************zone concernée***************** */
echo "Calories :".$caloriesDuRepas;
}
else
{
//Non complété pour le moment
echo "Test : Le else fonctionne";
}
Le problème se trouve à la "zone concernée" où je veux récupérer les calories du premier choix.
Est ce que quelqu'un a une solution ?
Merci d'avance !
P.S.:Si vous voyez des améliorations que je pourrais apporter à mon code merci de m'en faire part.
Bonjour,
J'ai une petit sujet de TP.
Il s'agit de faire un code PHP qui permet de donner à l'utilisateur le nombre de calories qui composent l'assiette qu'il va choisir.
Il y a plusieurs règles mais pour l'instant je suis à la règle concernant l'Apéritif. Ce que je n'arrive pas à faire c'est récupérer les calories dans le tableau en fonction de ce que l'utilisateur choisit comme apéritif et l'additionner à la variable $calorieDuRepas.
Voici le code que j'ai fait pour le moment :
[php]
function AfficheToutLeMenu($LeRepas){
foreach($LeRepas as $categorie=>$souscategorie){
echo "<br/>".$categorie." :<br/><br/>";
if(is_array($souscategorie)){
foreach($souscategorie as $nomAliment=>$calories){
echo $nomAliment." : ".$calories." calories <br/>";
}
}
/*le else n'est pas vraiment utile dans ce cas puisque la souscategorie est toujours un array la mais je le mets quand même...*/
else
{
echo $categorie." : ".$souscategorie." calories <br/>";
}
}
}
$Repas=array("Aperitifs"=>array("Noix de cajoux"=>612,"Pistaches"=>617,"Oeufs de lump"=>125),
"Boissons"=>array("Bierre 33cl"=>178,"flule champagne"=>78,"verre coca"=>180,"perrier"=>0,"verre Whisky"=>384),
"Dessert"=>array("crème glacé fraise"=>192,"crèpe nature"=>227,"pain au chocolat"=>410,"sorbet"=>90),
"Coquillages"=>array("12 huitres"=>110,"moules"=>70,"gambas"=>98),
"Poissons"=>array("anguille"=>250,"caviar"=>275,"daurade"=>77,"perche"=>112,"colin"=>92),
"Viandes"=>array("agneau"=>280,"andouillette"=>320,"bifteck de boeuf"=>200,"mouton"=>265),
"Volailles"=>array("poulet"=>150,"dinde"=>260),
"Feculents"=>array("riz"=>90,"pain blanc"=>255,"pates"=>90,"pomme de terre"=>90),
"Legumes"=>array("aubergines"=>29,"brocolis"=>34,"champignons"=>28,"chou"=>28,"Haricot vert"=>40),
"Fruits"=>array("banane"=>90,"fraise"=>36,"mangue"=>62,"pomme"=>52)
);
//J'affiche tout le menu
AfficheToutLeMenu($Repas);
//compteur de calories
$caloriesDuRepas=0;
echo "<br/>";
echo "Voulez vous un Aperitif ?<br/>";
echo "<br/>";
$Aperitif="oui";
//Ceci n'est qu'un test il n y a pas encore de saisie d'utilisateur, je mets donc les valeurs moi même
if($Aperitif=="oui"){
//numerotation me sert juste à affciher une liste 1) 2) 3), je l'enleverai une fois que j'aurais mis de l'html
$numerotation=0;
//J'affiche les Aperitifs
foreach($Repas["Aperitifs"] as $nomAliment=>$calories){
echo ($numerotation+1).") ".$nomAliment." : ".$calories." calories <br/>";
$numerotation++;
}
echo "Quel Aperitif prennez vous ? <br/>";
$choixAperitif=1;
//Ceci n'est qu'un test il n y a pas encore de saisie d'utilisateur, je mets donc les valeurs moi même
echo "Votre choix : ".$choixAperitif."<br/>";
switch($choixAperitif){
/* **************zone concernée***************** */
case 1 : foreach($Repas["Aperitifs"] as $nomAliment=>$calories){
$cal=$nomAliment[1];
}
$caloriesDuRepas=$caloriesDuRepas+$cal;
}
/* **************zone concernée***************** */
echo "Calories :".$caloriesDuRepas;
}
else
{
//Non complété pour le moment
echo "Test : Le else fonctionne";
}
[/php]
Le problème se trouve à la "zone concernée" où je veux récupérer les calories du premier choix.
Est ce que quelqu'un a une solution ?
Merci d'avance ! :mrgreen:
P.S.:Si vous voyez des améliorations que je pourrais apporter à mon code merci de m'en faire part.