Aide pour petit script en php

Résolu/Fermé
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 - 12 juin 2010 à 09:45
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 - 14 juin 2010 à 17:49
Bonjour,
Je suis en train de suivre des cours par correspondance en php et je me suis acheter le livre PHP et Mysql de zero

J'ai créé un formulaire avec 2 champs ça c'est fait
type text ou l'on met une somme d'argent
type select ou on sélectionne café ou bière

Je récupere dans une page les variable passé par l'utilisateur ça c'est fait

Ensuite il faut que je fasse une fonction dont le prototype est distributeur($monnaie, $boisson)
le prix café 1 euro et bière 2 euro
cette fonction doit tester
si sélectionne café est que la monnaie est supérieur à 1 euro on retourne true
si sélectionne bière est que la monnaie est supérieur à 2 euro on retourne true


Je sais pas si c'est très explicatif mais essayer de me donner quelques renseignement pour cette fonction c'est juste un petit exercice que j'ai à faire
Merci beaucoup de votre aide



5 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
12 juin 2010 à 10:54
Je pense avoir compris.
En gros, tu essayes de faire ... un distributeur de boisson (enfin, seulement la partie logiciel ^^).

Ça devrait aller comme ça :
<?php
function distributeur($monnaie, $boisson) {
    $boissons = array(
        'Café' => 1,
        'Bière' => 2
    );

    if(array_key_exists($boisson, $boissons)) {
        $prix = $boissons[$boisson];
        if((int) $monnaie >= $prix)
            return true;
    }

    return false;
}

echo distributeur(2, 'Bière') ? 'Ok' : 'Pas OK'; // Affichera : OK
echo distributeur(1, 'Bière') ? 'Ok' : 'Pas OK'; // Affichera : Pas OK
?>
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
12 juin 2010 à 10:57
Voila un code basique.
J'ai du rajouter la function affichage pr être sur que les name soit identiques à la récupération, ainsi que la valeur des option du select qui prend son importance ds la function distributeur.



$boisson=isset($post['boisson'])?$post['boisson']:""
$monnaie=isset($post['monnaie'])?$post['monnaie']:"";

if (($boisson<>"")and($monnaie<>"")){distributeur($monnaie,$boisson);}

affichage();


function distributeur($monnaie,$boisson){
$montantboisson[0]=1; //Si boisson = café
$montantboisson[1]=2; // Si boisson= bière
if ($monnaie>$montantboisson[$boisson]){
echo "true";
}else{
echo "false";
}
}

function affichage(){
echo 'Montant versé: <input type=text name=monnaie><br>';
echo 'Boisson sélectionné:<select name=boisson><option value="0">Café</option><option value="1">Bière</option></select>';
echo '<input type=submit value="Valider">';
}
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
12 juin 2010 à 11:15
Bonjour merci pour ta réponse je vais regarder tout cela et surtout essayer de bien comprendre.
Je te tiens au courant
merci encore
0
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
13 juin 2010 à 09:51
Bonjour

Merci encore de votre aide,

Je n'arrive pas à le faire fonctionner pouvez vous me donner encore quelques explication avec un peu de commentaire pour que je puisses assimiler se script.

Merci beaucoup

ma page index.html
[code]
<form name="formulaire" id="inscription" action="resultat.php" method="post">
<input type="text" name="monnaie" value=""/>
<select name="boisson">
<option value="cafe" name="cafe">cafe</option>
<option value="biere" name="biere">biere</option>
</select>
<input type="submit" name="Valider" value="Valider"/>
</form>
[/code]

ma page resultat.php
[code]
<?php
include('fonction.php');
?>
<?php
$monnaie = $_POST['monnaie'];
$boisson = $_POST['boisson'];
echo("vous avez entre $monnaie<br/>");
echo ("vous avez choisii $boisson");
?>
[/code]

ma page fonction.php ??
0
louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
Modifié par louloute300 le 13/06/2010 à 12:11
J'imagine que ton fichier fonction.php permet de voir si l'utilisateur a assez d'argent pr payer sa boisson:

fichier fonction.php:

<?
$boisson=isset($post['boisson'])?$post['boisson']:"" ;
$monnaie=isset($post['monnaie'])?$post['monnaie']:"";
$montantboisson['cafe']=1; //Si boisson = café
$montantboisson['biere']=2; // Si boisson= bière
if ($boisson<>""){
if ($monnaie>=$montantboisson[$boisson]){
echo "true";
}else{
echo "false";
}
}
?>


Explication du code:

$boisson=isset($post['boisson'])?$post['boisson']:""
isset permet de voir si la variable existe.
Si elle existe (?) alors $boisson=$post['boisson']
Sinon (:) $boisson=="";


$montantboisson['cafe']=1;
Fabrique un tableau des valeurs des montants des boissons.
Avec ce principe, il est impératif que ici "cafe" soit écris comme dans les valeur des options du select:
<option value="cafe" name="cafe">cafe</option>
Ex: Si tu aurai mis café il aurait fallut remplacer tous les mots cafe par café

if ($boisson<>""){
l'instruction if (équivalent francais Si) permet d'abord de voir si une boisson est choisi (différent de rien <>""),

if ($monnaie>=$montantboisson[$boisson]){
puis de voir si la monnaie entré par l'utilisateur est suffisante pour régler la boisson soit supérieur ou égal (>=)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
troubadour2 Messages postés 277 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 19 juin 2016 1
14 juin 2010 à 17:49
Merci j'ai enfin trouvé grâce à vous.
Merci
0