Page 1 sur 1

Affichage de certaines valeurs

Posté : 11 déc. 2006, 15:44
par Invité
Bonjour,

J'ai deux interrogations. Je commence par exposer la première.

Je voudrais savoir comment je peux en fonction de mon scrit afficher seulement les données dont les quantités sont supérieures à 0 : Mon script se décompose comme suit :

j'ai une page qui affiche des données provenant d'une base : code, désignation et prix d'un article. J'ai un champ "quantité" dans lequel les utilisateurs saisissent des quantités.

Je récupère les variables sous forme de tableau et je les fais afficher avec un compteur.

Je voudrais n'afficher les codes, désignations, prix et quantités que pour les quantités supérieures à 0 car pour l'instant j'affiche tous les produits même si les quantités sont à zéro.
 /*Déclaration de variables */
    $nb=count($tabQuantite);
    $total_commande= 0;


    for($i = 0; $i < $nb; $i++) 
    {
    /*Calcul du total : quantite x prix */
    $prixTotal= $tabQuantite[$i] * $tabPrix[$i];

     /*Formatage du prix total : 0.00n*/  
    $prixTotal= number_format($prixTotal,"2",".","");

    /*Calcul du total HT. */
    $total_commande +=  $prixTotal;

    ?>
    <tr> 
    <td class="td1" width="100"><?php print $tabCode[$i]; ?></td>
    <td class="td1" width="150"><?php print $tabDesign[$i]; ?></td>
    <td class="td1" width="100"><?php print $tabQuantite[$i]; ?></td>
    <td class="td1" width="100"><?php print $tabPrix[$i]; ?></td>
    <td class="td1" width="100"><?php print $prixTotal; ?></td>
    </tr>
    <?php } ?>

    <tr>
    <td height="40" colspan="5" valign="middle"></td>
    </tr>
    <tr>
    <td colspan="3">
    <th class="th" width="100" align="center">Total H.T.:</th>
    <td class="td1" width="100" align="center">
    <?php 
    $total_commande= number_format($total_commande,"2",".","");
    print $total_commande;
    ?>
Merci pour votre aide

Re: Affichage de certaines valeurs

Posté : 11 déc. 2006, 15:53
par Ultim4T0m
Bonjour,

Quelque chose de ce genre là ?
<?php
 /*Déclaration de variables */
    $nb=count($tabQuantite);
    $total_commande= 0;


    for($i = 0; $i < $nb; $i++) 
    {
        if($tabQuantite[$i] > 0 && is_numeric($tabQuantite[$i]))   {  // On vérifie que la quantité entrée est supérieure à 0, et que c'est bien une donnée numérique
    /*Calcul du total : quantite x prix */
    $prixTotal= $tabQuantite[$i] * $tabPrix[$i];

     /*Formatage du prix total : 0.00n*/  
    $prixTotal= number_format($prixTotal,"2",".","");

    /*Calcul du total HT. */
    $total_commande +=  $prixTotal;

    ?>
    <tr> 
    <td class="td1" width="100"><?php print $tabCode[$i]; ?></td>
    <td class="td1" width="150"><?php print $tabDesign[$i]; ?></td>
    <td class="td1" width="100"><?php print $tabQuantite[$i]; ?></td>
    <td class="td1" width="100"><?php print $tabPrix[$i]; ?></td>
    <td class="td1" width="100"><?php print $prixTotal; ?></td>
    </tr>
    <?php
        }  // Fin du if
    }
    ?>

    <tr>
    <td height="40" colspan="5" valign="middle"></td>
    </tr>
    <tr>
    <td colspan="3">
    <th class="th" width="100" align="center">Total H.T.:</th>
    <td class="td1" width="100" align="center">
    <?php 
    $total_commande= number_format($total_commande,"2",".","");
    print $total_commande;
    ?>

Affichage de certaines valeurs

Posté : 11 déc. 2006, 16:10
par Invité
Merci effectivement cela fonctionne!

Mon deuxième souci vient de la mise en forme d'un mail au format texte.
j'envoie toutes les données concernant les codes, désignations, quantités et prix dans une nouvelles page et je les fais transités par des input type=hidden. Je récupères bien les données mais je n'ai pas trouvé la sol pour les faire afficher comme je veux soit:

ex:

12 POIRE à 5.00 au lieu de 12 poire à 5.00. Je veux dons insérer plus d'espaces entre chaque valeurs.

Voici comment je transfère les données :
/*Transformation des tableaux en chaine de caractère pour les passer en input type=hidden */
    $valeurs= array();

    /*Récupération du contenu des tableaux $tabQuantite, $tabDesign, $tabPrix; */
    for($i = 0; $i < $nb; $i++) 
    { 
    $valeurs[] = " ".$tabQuantite[$i]." "; 
    $valeurs1[] = " ".$tabDesign[$i]." ";
    $valeurs2[] = " ".$tabPrix[$i]." "; 
    } 
     
    /*Transformation des tableaux en chaine de caractère */ 
    $valeurTab = implode(",", $valeurs); 
    $valeur1Tab = implode(",", $valeurs1); 
    $valeur2Tab = implode(",", $valeurs2); 
    ?>

    </td>
    </tr>
    <tr>
    <td height="50" colspan="5">&nbsp;</td>
    </tr>
    <tr>
    <td align="right" width="225" colspan="2">
    <input type="hidden" name="adressemail" value="<? print $tabCourriel; ?>">
    <input type="hidden" name="total" value="<? print $total_commande; ?>">
    <input type="hidden" name="value" value="<? print $valeurTab; ?>">
    <input type="hidden" name="value1" value="<? print $valeur1Tab; ?>">
    <input type="hidden" name="value2" value="<? print $valeur2Tab; ?>">
    <input class="input1" type="submit" value="Valider">
Voici ma fonction mail():
/*Envoi du mail récapitulatif de la commande*/
  $msg= "
  Bonjour,\n\n 
  Nous vous remercions pour votre commande dont voici le détail:
  -----------------------------------------------------------------------------------------------------------------------
  ";
  /*Récupération des quantités, désignations et prix Unitaire */
  $tabValeurs=explode(",",$tabValeurs);
  $tabValeurs1=explode(",",$tabValeurs1);
  $tabValeurs2=explode(",",$tabValeurs2);

  $valeurs= array();
  $nb=count($tabValeurs);
  for($i = 0; $i < $nb; $i++) 
  { 
  $valeurs[]= " ".$tabValeurs[$i]." ".$tabValeurs1[$i]." à ".$tabValeurs2[$i]." Euros (prix unitaire)";
  }

  $mailValeurs= implode("\n",$valeurs);
  
  $msg=$msg."
  $mailValeurs
  ";
 
  $msg=$msg."
  -----------------------------------------------------------------------------------------------------------------------
  Montant total HT:       $totalHt Euros 
   

  Bien cordialement,
  La Rotonde Editions.
  "; 
Merci

Posté : 11 déc. 2006, 16:22
par Ultim4T0m
Comment ça ?

Code : Tout sélectionner

12 POIRE à 5.00 au lieu de 12 poire à 5.00.
Si tu veux qu'il t'affiche ce mot en majuscule, il te suffit de regarder du côté de la fonction strtoupper();

Et penses également à bien sortir tes variables, comme ici par exemple :
<?php
  $msg=$msg."
  $mailValeurs
  "; 
?>

Affichage de certaines valeurs

Posté : 11 déc. 2006, 16:47
par Invité
Mon souhait est d'avoir plus d'espaces entre chaque valeur pour avoir un affichage plus aéré et pour l'instant je n'y arrive pas. J'ai tout juste réussi à faire un saut de ligne.
Pour mon saut de ligne j'avais fait un implode
 implode("<br>",$valeurs) 
mais il m'affichait <br> au lieu de l'exécuter.

Qu'entends-tu par bien sortir mes variables?
Merci

Posté : 11 déc. 2006, 16:53
par iclo
Tes données proviennent d'une base de donnée ?
Si c'est la cas, pour ta première question, il serait plus judicieux de ne sortir de la base de donnée que les données ayant une quantité plus grande que 0.

Affichage de certaines valeurs

Posté : 11 déc. 2006, 16:59
par Invité
Mes données proviennent d'une base juste pour l'affichage des caractéristiques des produits sinon bien sûr que je aurais extrait avec une requète sql que les produits dont les quantités saisies étaient supérieures à 0. Là est la particularité de ce script.