Bonjour à tous,
Bon ça y est, je viens de franchir le pas et me lance dans le PHP... donc encore énormément de lacunes !!!
Je suis sur le projet d'un formulaire de réservation de matériels de ski et je souhaiterai savoir comment faire pour mettre au pluriel le nom des articles qui pourraient être réservés par plusieurs personnes. Exemple : 1 casque / 2 casques...
A savoir que certains articles sont déjà au pluriel comme "skis ou chaussures", donc comment éviter que ceux-ci se retrouvent avec un double S ?
Mon code PHP (de débutant...)
<?php
echo '<p>Réservation traitée le ';
echo date_fran();
echo ' à ';
echo date('H:i');
echo '</p>'
?>
<?php
function date_fran()
{
$mois = array("Janvier", "Février", "Mars",
"Avril","Mai", "Juin",
"Juillet", "Août","Septembre",
"Octobre", "Novembre", "Decembre");
$jours = array("Dimanche", "Lundi", "Mardi",
"Mercredi", "Jeudi", "Vendredi",
"Samedi");
return $jours[date("w")]." ".date("j").(date("j")==1 ? "er":" ").
$mois[date("n")-1]." ".date("Y");
}
?>
<?php
//Adultes
$qte_skigold = $_POST'qte_skigold'];
$qte_skisilver = $_POST'qte_skisilver'];
$qte_snowgold = $_POST'qte_snowgold'];
$qte_snowsilver = $_POST'qte_snowsilver'];
$qte_snowblades = $_POST'qte_snowblades'];
$qte_ski_shoes_adulte = $_POST'qte_ski_shoes_adulte'];
$qte_boots_adulte = $_POST'qte_boots_adulte'];
//Juniors
$qte_skijunior = $_POST'qte_skijunior'];
$qte_snowjunior = $_POST'qte_snowjunior'];
$qte_ski_shoes_junior = $_POST'qte_ski_shoes_junior'];
$qte_boots_junior = $_POST'qte_boots_junior'];
$qte_casque_junior = $_POST'qte_casque_junior'];
//babys
$qte_skibaby = $_POST'qte_skibaby'];
$qte_ski_shoes_baby = $_POST'qte_ski_shoes_baby'];
$qte_casque_baby = $_POST'qte_casque_baby'];
$qte_pieps = $_POST'qte_pieps'];
echo '<p>Réservation adulte(s) :</p>';
echo $qte_skigold . ' Skis Gold<br/>';
echo $qte_skisilver . ' Skis Silver<br/>';
echo $qte_snowgold . ' Snowboard Gold<br/>';
echo $qte_snowsilver . ' Snowboard Silver<br/>';
echo $qte_snowblades . ' Snowblades<br/>';
echo $qte_ski_shoes_adulte . ' Chaussures de ski<br/>';
echo $qte_boots_adulte . ' Boots snowboard</p>';
echo '<p>Réservation enfant(s) :</p>';
echo $qte_skijunior . ' Skis<br/>';
echo $qte_snowjunior . ' Snowboard<br/>';
echo $qte_ski_shoes_junior . ' Chaussures de ski<br/>';
echo $qte_boots_junior . ' Boots snowboard<br/>';
echo $qte_casque_junior . ' Casque</p>';
echo '<p>Réservation baby(s) :</p>';
echo $qte_skibaby . ' Skis<br/>';
echo $qte_ski_shoes_baby . ' Chaussures de ski<br/>';
echo $qte_casque_baby . ' Casque</p>';
echo '<p>Votre sécurité sur les pistes et hors pistes :</p>';
echo $qte_pieps . ' Pieps + Sonde + Pelle + Sac à dos</p>';
//quantité loué
$qte_totale = 0;
$qte_totale = $qte_skigold+ $qte_skisilver+ $qte_snowgold+ $qte_snowsilver+ $qte_snowblades+ $qte_ski_shoes_adulte+ $qte_boots_adulte+
$qte_skijunior+ $qte_snowjunior+ $qte_ski_shoes_junior+ $qte_boots_junior+ $qte_casque_junior+ $qte_skibaby+ $qte_ski_shoes_baby+ $qte_casque_baby+ $qte_pieps;
echo('Matériels loués : '.$qte_totale.'<br/>');
//Adultes
define('PRIX_SKIS_GOLD', 54.00);
define('PRIX_SKIS_SILVER', 43.20);
define('PRIX_SNOW_GOLD', 54.00);
define('PRIX_SNOW_SILVER', 43.20);
define('PRIX_SNOWBLADES', 54.00);
define('PRIX_SKI_SHOES_ADULTE', 28.80);
define('PRIX_BOOTS_ADULTE', 28.80);
//Juniors
define('PRIX_SKIJUNIOR', 25.20);
define('PRIX_SNOWJUNIOR', 28.80);
define('PRIX_SKI_SHOES_JUNIOR', 21.60);
define('PRIX_BOOTS_JUNIOR', 21.60);
define('PRIX_CASQUE_JUNIOR', 7.20);
//Babys
define('PRIX_SKIBABY', 21.60);
define('PRIX_SKI_SHOES_BABY', 18.00);
define('PRIX_CASQUE_BABY', 7.20);
define('PRIX_PIEPS', 15.00);
//montant résa
$montant_total = $qte_skigold * PRIX_SKIS_GOLD
+ $qte_skisilver * PRIX_SKIS_SILVER
+ $qte_snowgold * PRIX_SNOW_GOLD
+ $qte_snowsilver * PRIX_SNOW_SILVER
+ $qte_snowblades * PRIX_SNOWBLADES
+ $qte_ski_shoes_adulte * PRIX_SKI_SHOES_ADULTE
+ $qte_boots_adulte * PRIX_BOOTS_ADULTE
+ $qte_skijunior * PRIX_SKIJUNIOR
+ $qte_snowjunior * PRIX_SNOWJUNIOR
+ $qte_ski_shoes_junior * PRIX_SKI_SHOES_JUNIOR
+ $qte_boots_junior * PRIX_BOOTS_JUNIOR
+ $qte_casque_junior * PRIX_CASQUE_JUNIOR
+ $qte_skibaby * PRIX_SKIBABY
+ $qte_ski_shoes_baby * PRIX_SKI_SHOES_BABY
+ $qte_casque_baby * PRIX_CASQUE_BABY
+ $qte_pieps * PRIX_PIEPS;
echo 'Montant de votre réservation : ' .number_format($montant_total, 2, ',', ''). ' €<br/>';
//réservation nulle
if ( $qte_totale == 0):
echo 'Votre réservation ne contient aucun matériel !<br/>';
exit;
endif;
?>
Merci pour votre aide qui sera sûrement très instructive ;)
bon j'ai fini par trouver !!! Je ne sais pas si c'est la meilleur solution, mais elle fonctionne...
$qte_casque_baby = $qte_casque_baby ;
if ($qte_casque_baby <2)
{
echo $qte_casque_baby . ' Casque<br/>';
}
elseif ($qte_casque_baby >1)
{
echo $qte_casque_baby . ' Casques<br/>';
}
Il y a plusieurs manières de faire, ta solution est bonne, celle de Swup aussi quoiqu'un peu plus compliquée dans la mesure ou il faut rentrer beaucoup d'infos et à mon sens plus adaptée, comme il le dit, à l'internationalisation.
On peut donc ajouter à ces solutions :
echo $qte_casque_baby.' casque'.($qte_casque_baby>1)?'s':'';
Pour des vérification courtes et rapides, c'est ce que je préfère.
Ajouter un caractère à une chaine ou variable :
$item = 'casque';
if($qte_casque_baby>1){
// On utilise ici l'opérateur .= qui permet donc de rajouter un s à la variable $item.
$item .= 's';
}
echo $qte_casque_baby.' '.$item
Bonjour ThyBarth, Ce que je te conseille c'est de mettre tes textes dans un tableau associatif, de définir un identifiant pour chacun de tes textes et d'y inscrire pour chaque ligne le singulier et le pluriel. Exemple : [code] $messages = new array( "page" => [s: "Page", p: "Pages"], "cake" => [s: "Gâteau", p: "Gâteaux"] );[/code] Ensuite tu testes si le nombre d'éléments est strictement supérieur à 1 : si oui tu affiches le singulier, sinon le pluriel pour chaque entité. Bravo, tu as fait un pas vers l'internationalisation.
Merci pour vos réponses... et vos différentes méthodes.
J'ai encore un peu de mal avec les tableaux, prochaine étape de mon apprentissage PHP ;)
J'ai opté pour la solution de Natà, qui me parait plus simple et moins lourde que la mienne.
Tu arrives à manipuler les opérateurs ternaires, mais pas les tableaux ? :p
Ton ordre d'apprentissage est à revoir :p
Va leur dire alors :D
Car bon les tableaux c'est l'une des bases je trouve alors que l'opérateur ternaire moins !