Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 18/03/2010, 09h59   #1
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 130
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 130
Points : 35
Points : 35
Par défaut Update et ordre de priorité

Bonjour ,

Aujourd'hui , je réalise 2 update sur une même table l'un à la suite de l'autre.
Le premier me permet d'agir sur les prix de vente de mes articles ; et le second met à jour les frais de port en fonction des nouveaux prix de vente .

Toutefois , je m'interroge ...

Si je fais un seul update , du style :

Code SQL :
UPDATE shop_monnaies SET prix_ttc=(prix_ttc*0.1),port=case( ...);
Est-ce que l'update va faire baisser les prix de 10% du champ prix_ttc puis mettre à jour le champ port ?

HAbroc

Dernière modification par andry.aime ; 18/03/2010 à 10h02. Motif: Merci d'utiliser la balise[code] (bouton # de l'éditeur)
HAbroc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 10h39   #2
Membre habitué
 
Inscription : juillet 2009
Messages : 156
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 156
Points : 133
Points : 133
Si je comprends bien ta question, faire 1 seule requête SQL pour update plusieurs champs d'une table, c'est ca???
Si c'est le cas oui tu peux le faire sans problème:
Code :
1
2
$sql = "UPDATE `news` SET titre='%s', lien='%s', type='%s', ordre='%d', lang='%s', source='%s' WHERE id='%d'";
$sql = sprintf($sql, FormatSQL($titre), FormatSQL($lien), FormatSQL($type), FormatSQL($ordre), FormatSQL($lang), FormatSQL($source), FormatSQL($id));
Ze AzAr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 10h59   #3
Membre habitué
 
Inscription : juillet 2009
Messages : 156
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 156
Points : 133
Points : 133
Ok désolé je n'ai répondu qu'a la moitié
Pas encore bien réveillé, tu dois ressortir ta valeur avant de la traiter et la renvoyer...
tu ne peux pas agir directement sur la valeur d'un champs sans le passer en variable...
Ze AzAr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 11h09   #4
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 130
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 130
Points : 35
Points : 35
Effectivement , j'ai bien compris que je pouvais updater 2 champs d'une même table en même temps. Ce que je ne sais pas en revanche , c'est si le fait de le faire en même temps , c'est pareil que le faire l'un après l'autre .

Je m'explique => exemple :

J'ai un champ pour les prix : shop_prix avec par exemple la valeur 10 pour l'id 5 avec des frais de port de 5 dans le champ shop_port .

Si je fais un update sur la table pour le champ prix ; mon prix passe bien à 9.
Je fais ensuite un update sur le champ port et ...si j'ai défini que pour un prix compris entre 9.50 et 7.5 le champ port prend la valeur 3.5 , mon champ port prendra effectivement la valeur 3.50 dans mon exemple .

Mais , qu'en est-il si je fais les 2 update en même temps ? L'update des frais de port se fera t-il sur un prix de 10 ou de 9 ? That is the question ...
HAbroc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 11h14   #5
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 130
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 130
Points : 35
Points : 35
Désolé Ze Azar , le pemps que je tape , je n'avais pas vu ta réponse ...

Donc d'après toi , il me faut bien 2 update l'un après l'autre ...
HAbroc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 11h35   #6
Membre habitué
 
Inscription : juillet 2009
Messages : 156
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 156
Points : 133
Points : 133
Moi j'aurai fait un select, et ensuite 1 update...:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sql = "SELECT prix_ttc FROM shop_monnaies WHERE id='10';";
$result	=	mysql_query($query) or die($query . " - " . mysql_error());
$object	=	mysql_fetch_object($result);
 
$prix = $object->prix_ttc;
$prix = $prix*0,1 ;
 
if ( $prix > 7.5 && $prix < 9.5 ){
	$port = 3.5;
}
else {
	$port = 5;
}
 
$sql = "UPDATE shop_monnaies SET prix_ttc='%d' ,port='%d';" ;
$sql = sprintf($sql , mysql_real_escape_string($prix), mysql_real_escape_string($port));
$result	=	mysql_query($query) or die($query . " - " . mysql_error());
ps: oui j'aime bien décomposer au maximum et encore la j'ai été soft
Ze AzAr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/03/2010, 12h02   #7
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 130
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 130
Points : 35
Points : 35
Merci beaucoup , c'est beaucoup plus clair pour moi .
HAbroc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 08h50.


 
 
 
 
Partenaires

Hébergement Web