Modifier/Ajouter/Additionner une valeur dans une table sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Modifier/Ajouter/Additionner une valeur dans une table sql

par Ryle » 01 sept. 2006, 10:02

" PHPFrance, le forum des révélation : nous lisons les bugs passés, présents et à venir dans les entrailles de code php, ainsi que dans le marc de sql ! " ;)

Le SELECT ne sert effectivement qu'à la lecture de ta table et tu peux tout à fait faire des INSERT, UPDATE ou DELETE sans consulter la table :)

Ceci étant, as tu essayé de faire l'update du coup ? est ce que ça fonctionne bien comme tu le souhaites ?

par finipe » 01 sept. 2006, 04:29

Waaaaa chaque fois que je viens sur ce forum j'ai une révélation... et pourtant je commence à me démerder en php depuis le temps, comme quoi on reste débutant très longtemps 8)

par Truc » 01 sept. 2006, 00:30

ou peut-on faire l'UPDATE directement ?
oui :wink:

par finipe » 31 août 2006, 22:57

Je profite du sujet pour poser une question subsidiaire : j'ai souvent dû faire des trucs dans ce genre pour des sites, mais je ne savais pas !

Tu indiques ceci :

Code : Tout sélectionner

UPDATE ta_table SET ton_champ = ton_champ + valeur WHERE ...
... mais j'ai toujours cru qu'on devait faire

Code : Tout sélectionner

SELECT ton_champ FROM ta_table WHERE... { UPDATE ta_table SET ton_champ = ton_champ + valeur WHERE ... }
Alors doit-on d'abord faire un SELECT pour récupérer la valeur du champ, puis la modifier avec un UPDATE, ou peut-on faire l'UPDATE directement ?

par iclo » 31 août 2006, 20:36

Non, car les opérations seront effectuées sur les valeurs issues de la table, au moment où seront effectuée l'opération, et non sur celles qui étaient affichées dans la page.

par neo765 » 31 août 2006, 20:24

Merci

Mais je pense qu'il y a un problème :

Par exemple : 2 membres chargent la page au même moment :

La valeur de var1 est à 5

Le premier membre y ajoute 2 et valide

Le 2ème qui a toujours var1 en mémoire y ajoute 3 et valide

Au final, l'ajout du membre 1 sera ignorée et la valeur de var1 sera à 8 au lieu de 10

Non ?

Merci

par Ryle » 31 août 2006, 20:06

Tu peux faire ça avec une simple requête update en utilisant la valeur du champ que tu es en train de mettre à jour :)

Code : Tout sélectionner

UPDATE ta_table SET ton_champ = ton_champ + valeur WHERE ...

Modifier/Ajouter/Additionner une valeur dans une table sql

par neo765 » 31 août 2006, 19:54

Bonjour,

J'aimerai pouvoir additionner une valeur dans une table sql

Par exemple si le champ "var1" vaut "5"
Je voudrais pouvoir ajouter par exemple "2" à "var1" (choisi par un membre)

Se que je ne souhaite pas c'est d'appeller var1 et d'y ajouter 2, car si 2 visiteurs ont chargés la page en même temps la base sera mis à jour que par le dernier et la requete du premier sera ignorée.

Merci