Update

Résolu
frysk Messages postés 2 Date d'inscription jeudi 21 décembre 2000 Statut Membre Dernière intervention 13 septembre 2008 - 12 sept. 2008 à 18:14
frysk Messages postés 2 Date d'inscription jeudi 21 décembre 2000 Statut Membre Dernière intervention 13 septembre 2008 - 13 sept. 2008 à 18:38
Bonjour à tous!
Une petite présentation pour commencer: j'ai 39 ans, marié et 2 enfants; je suis pour ainsi dire novice en developpement php/mysql, mais je voudrais apprendre!...
J'ai un site e-commerce et aimerai mettre les mains dans le cambouis pour ne pas dépendre que de mon prestataire.
Voici mon 1er obstacle donc une 1ere question:
Je voudrais faire une mise à jour hors taxe de la colonne (prix_achat) d'une table (bon_de_commande); j'ai donc fait une requete:
UPDATE bon_de_commande
SET prix_achat = prix_achat/1.196

Pour les valeurs uniques, ça marche, mais il existe (lorsque la commande comporte plusieurs articles, une chaine avec un séparateur $ (exemple: 2.00$15.22$3.50): là je suis bloqué parce que le résultat n'est pas du tout le bon.

Est-ce-que quelqu'un peut m'éclairer et m'indiquer la bonne requete svp?
merci

2 réponses

jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 32
13 sept. 2008 à 12:02
Bonjour,
si ton prix_achat est une chaine (où les différents prix sont séparés par un $), il faut t'y prendre autrement (faire un petit programme) :
(en gros)

<?php
// sélection de tous les ID et "prix_achat" de la table
   $query = 'SELECT ID,prix_achat FROM bon_de_commande';
   $result = mysql_query($query)  or die('Erreur SQL ! '.$query.'
'.mysql_error());
// pour chaque resultat (fiche ID)
while ($val = mysql_fetch_array($result)) {
   $prix_achatHT ='';
   // separation des elements
   $tabprix = explode('$',$val['prix_achat']);
   for ($i=0;$i<sizeof($tabprix);$i++) {
     // HT de chaque element
     $tabprix[$i] = $tabprix[$i]/1.196;
     // on recolle les morceaux
     $prix_achatHT .= $tabprix[$i];
     if ($i<>(sizeof($tabprix)-1)) {
       // ajoute le signe $ (sauf pour le dernier)
       $prix_achatHT .= '$';
     }
   }
   // on UPDATE la table pour la fiche ID   $SQLprix 'UPDATE bon_de_commande SET prix_achat \''.$prix_achatHT.'\' WHERE ID= '.$val['ID'];
   mysql_query($SQLprix)  or die('Erreur SQL ! '.$SQLprix.'
'.mysql_error());
}
?>
3
frysk Messages postés 2 Date d'inscription jeudi 21 décembre 2000 Statut Membre Dernière intervention 13 septembre 2008
13 sept. 2008 à 18:38
Excellent! je te remercie beaucoup jreaux62: ça fonctionne bien!!!
Tu m'enlèves vraiment une épine du pied, parce que j'ai effectivement chercher sur le net et la fonction "explode" me semblait la plus appropriée mais je ne savais pas trop la mettre en place.
J'ai juste ajouté la fonction "round" :
$tabprix[$i] = round(($tabprix[$i]/1.196),2);

a+
0
Rejoignez-nous