IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Addition des résultats d'une requête et arrondissement de nombres [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Points : 39
    Points
    39
    Par défaut Addition des résultats d'une requête et arrondissement de nombres
    à tous,

    j'ai un trou de mémoire, j'ai besoin de diminuer le chiffre après la virgule d'une variable (par exemple 12.2356 arrondir à 12.23), je crois que la fonction printf est la solution mais impossible de me souvenir du fonctionnement.

    Autre problème, j'ai utilisé une requète qui me sort une liste de produit avec leur attribut et leur prix.

    Une fois les produit séléctionné, j'ai besoin d'additioner les prix pour avoir le prix total à commander, comment je peux faire cette addition?

    Exemple de requete qui affichera ma liste de produit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $request = tep_db_query("SELECT products_id, products_name, products_attributs, products_price FROM products");
     
    while($data = mysql_fetch_assoc($request)) 
      { 
     
    			echo '<tr>
    			<td class="directbuy" width="90" align="center"><input type="checkbox" name="select[]" value="$data['products_id] . '-' . $data['products_name] . '-' . $data['products_attributs'] . '-' . $data['products_price'] . '" /></td>
                <td class="directbuy_nom" width="250">' . $data['products_name'] . '</td>
    			<td class="directbuy" width="150" align="center">' . $data['attributs'] . '</td>
    			<td class="directbuy_check" width="100" align="center"><input class="quantite" type="text" name="p' . $data['products_id'] . '" /></td>
    			</tr>';
     
    	}
    Page avec l'envoie d'un mail decrivant la commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    foreach ( $_POST["select"] AS  $value ){
    	$data = explode("-", $value);
     
    	if ((!empty($_POST[$data[0]])) && ($_POST[$data[0]] != 0)) {		    
    $prix= $data[3] * $_POST[$data[0]];
    $corps_cli .= "- " . $data[1] . "\n  QUANTITE : " . $_POST[$data[0]] . "\n  ATTRIBUTS: " . $data[2] . "\n  PRIX UNITAIRE : " . $data[3] . "\n  -----PRIX : " . $prix . "\n\n";
    		$corps_cli .= "\n-----------TOTAL DE LA COMMANDE : 
    	}
    }
    Et mon problème se situe ici au niveau du TOTAL DE LA COMMANDE

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Points : 537
    Points
    537
    Par défaut
    Salut,

    pour le formatage d'un nombre tu peux utiliser la fonction number_format(ta_valeur, décimales [, séparateur_décimal [, séparateur_milliers]]) (http://www.php.net/manual/fr/function.number-format.php)

    Pour le problème du total, c'est simple, tu initialises une variable total et tu l'incrémentes de la valeur de chaque item dans la boucle.

    Et en fin de boucle tu affiches la valeur de total.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    comme dit beeboo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $prix_total=0;
    foreach ( $_POST["select"] AS  $value ){
    	$data = explode("-", $value);
     
    	if ((!empty($_POST[$data[0]])) && ($_POST[$data[0]] != 0)) {		    
    $prix= $data[3] * $_POST[$data[0]];
    $prix_total += $prix;
    $corps_cli .= "- " . $data[1] . "\n  QUANTITE : " . $_POST[$data[0]] . "\n  ATTRIBUTS: " . $data[2] . "\n  PRIX UNITAIRE : " . $data[3] . "\n  -----PRIX : " . $prix . "\n\n";
    	}
     
    		$corps_cli .= "\n-----------TOTAL DE LA COMMANDE : ".$prix_total; //une fois sorti de ton foreach tu donne le prix total
    }
    Stay in Bed .. Save Energy

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 199
    Points : 116
    Points
    116
    Par défaut
    Pour tronquer à 2 chiffres après la virgule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf("%01.2f", $nombre);

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Points : 39
    Points
    39
    Par défaut
    Merci à vous, ca marche nikel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Numérotation automatique des résultats d'une requête
    Par Nicola dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/07/2006, 19h57
  2. Réponses: 2
    Dernier message: 02/12/2005, 21h21
  3. Réponses: 1
    Dernier message: 02/12/2005, 20h18
  4. Pagination des résultats d'une requête
    Par dl_jarod dans le forum ASP
    Réponses: 2
    Dernier message: 17/10/2005, 14h30
  5. Calcul à partir des résultats d'une requète
    Par Sendo dans le forum Access
    Réponses: 1
    Dernier message: 29/09/2005, 17h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo