update mysql

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

monbototo
Nouveau WRInaute
 
Messages: 10
Inscription: Mar Nov 07, 2006 22:04

update mysql

Message le Ven Sep 12, 2008 18:08

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!... :D
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


zeb
WRInaute accro
WRInaute accro
 
Messages: 1186
Inscription: Dim Déc 05, 2004 19:47

Message le Ven Sep 12, 2008 18:31

Tu ne pourra pas (sauf inconnue de ma part) faire ce genre de travail avec du SQL seulement.
Ton champ de base de données n'étant pas composées de données numériques dans chaque cas.

Si je ne me trompe pas tu devra extraire chaque champ y appliquer le traitement nécessaire et updater la base. Il va te falloir passer par php dans un tel cas.

poulpe
Nouveau WRInaute
 
Messages: 45
Inscription: Mar Juin 29, 2004 16:31

Message le Ven Sep 12, 2008 18:38

Je pense comme zeb, par contre stocker tous les articles d'une commande dans un champ est plutot moyen au niveau de la structure de ta base.
Normalement tu devrais avoir une ligne par article et dans chaque ligne le numéro de commande correspondant (la clé étrangère), dans deux tables séprées. Ca ferait une table de commandes, une table d'articles et une table associant les articles aux commandes.

FloBaoti
WRInaute passionné
WRInaute passionné
 
Messages: 682
Inscription: Dim Avr 30, 2006 18:42

Message le Ven Sep 12, 2008 18:57

Oui une des premières règles qu'on apprend en conception de base de données est qu'un champ représente une valeur atomique.
Enfin bref...

Donc oui dans ton cas il faudra extraire ces champs là.
Même si une solution existe en SQL pur, elle doit être assez tordue.

Le plus simple est effectivement d'extraire le champ:
1/ tu sélectionne tous les enregistrements
2/ tu les passe un par un
3/ si le champ contient un symbole dollar, alors tu extrait chaque valeur numérique (fonction "explode" en PHP par exemple), tu les traites un par un et tu les remet avec la fonction invserse


druart
WRInaute accro
WRInaute accro
 
Messages: 1659
Inscription: Dim Avr 30, 2006 8:08

Message le Ven Sep 12, 2008 19:15

En fait, au vu des réponses ci-dessus, tu as oublié de préciser un élément important :

Cette requête, souhaites-tu l'exécuter au travers d'un fichier php ou pas ?

monbototo
Nouveau WRInaute
 
Messages: 10
Inscription: Mar Nov 07, 2006 22:04

Message le Ven Sep 12, 2008 23:59

wouah: merci de vos nombreuses réponses!!!
effectivement, en attendant vos réponses, j'ai cherché un peu sur le net et comme vous le dites si bien, il semble bien plus judicieux de passer par php et la fonction "explode" .
...une des premières règles qu'on apprend en conception de base de données est qu'un champ représente une valeur atomique...
je l'apprends malheusement à mes dépends et bien trop tard: mon prestataire l'a conçu comme ça :cry:
J'aimerai donc exécuter cette requete au travers d'un fichier php: mais je ne sais pas trop comment faire :oops:
quelqu'un peut-il me mettre sur la voie avec un début de morceau de code? (extraire les données sous forme de table, c'est bon, ça au moins je sais, mais c'est après que ça se corse...)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités