Modifier valeur dans une base SQL

Modifier valeur dans une base SQL - PHP - Programmation

Marsh Posté le 06-07-2012 à 20:40:38    

Bonjour,
 
J'ai un formulaire d'inscription  en php, jecherche une commande pour modifier une valeur dans une base SQL quand un  nouveau membre s'inscrit, la table se nomme "membres"  
 
Par défaut la valeur se met toujours à 1 mais je voudrais que ce soit le 0 qui soit selectionné,
 
http://image.noelshack.com/fichiers/2012/27/1341597856-sql.jpg
 
Quelle commande utilisée? J'ai ça
 
mysql_query("UPDATE membres SET valide='0' WHERE id='" . $_GET['pseudo'] . "'" );
 
 
ça ne fonctionne pas,
 
je précise que je n'y connais pas grand chose en programmation même si ça se voit surement.
 
 
Merci d'avance.

Reply

Marsh Posté le 06-07-2012 à 20:40:38   

Reply

Marsh Posté le 06-07-2012 à 22:11:32    

Si tu souhaites qsue la modification soit appliquée à toutes les nouvelles entrées de ta table ce sera:
 
ALTER TABLE `membres` CHANGE `valide` `valide` ENUM('0', '1') DEFAULT '0'
 
Si tu souhaites également passer tous tes membres à 0:
 
UPDATE `membres` SET `valide` = '0'

Reply

Marsh Posté le 06-07-2012 à 22:29:17    

Plusieurs choses ne sont pas convenables dans ce que tu fais. Je vais supposer que tu utilises MySQL, mais ça serait bien de le préciser, je ne peux pas deviner.
 
Premièrement, si tu souhaites que la valeur par défaut soit 0, tu peux le définir directement. J'ajouterais qu'utiliser un ENUM pour mettre 0 ou 1 est inutile. Je te conseil plutôt de te servir d'un TINYINT qui sert souvent pour tout ce qui est booléen. Pour modifier tout ça, en MySQL :

Code :
  1. ALTER TABLE membres MODIFY COLUMN valide TINYINT(1) NOT NULL DEFAULT 0;


 
Ensuite, si tu souhaites mettre à jour un utilisateur après avoir fait cette modification :

Code :
  1. UPDATE membres SET valide = 0 WHERE id=nombre


 
L'erreur dans ta requête, est probablement que tu a mis des quote dans ta clause WHERE pour ta colonne id, qui, je suppose, est de type INT et attend donc un entier. Tu peux aussi enlever la clause WHERE si tu veux tout mettre à jour, comme dans l'exemple de xaeon.
 
Et aussi, j'ajouterai que passer une variable GET directement dans une requête SQL, c'est une énorme erreur de sécurité. C'est un sujet trop vaste que je n'aborderai donc pas ici. Mais ne fait pas ça comme ça, tu dois d'abord vérifier la valeur de ton $_GET['pseudo'] avant de le mettre dans ta requête. Cherche « injection SQL » sur ton moteur de recherche favori.


Message édité par Archaygo le 06-07-2012 à 22:30:11
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed