[Mysql] Creer un champs si il n'existe pas.

krabs -  
 gyam -
Bonjour,

J'effectue la mise a jour d'une base de donnée a 2champs ( un nom(unique) et un total de points) avec:
UPDATE classement SET points=points+$chg WHERE nom='$nom'

Ce qui marche parfaitement.Maintenant je voudrai complexifier un peu mon script pour pouvoir créer un un nouveau champs si le nom n'existe pas encore dans la base.

exemple: toto n'a pas de champs dans la base je veut donc lui donner en donner un.

J'ai penser au "NOT EXISTS" mais je suis pas capable de bien l'appliquer étant encore très novice avec le sql

Merci à vous
A voir également:

4 réponses

toto
 
Il faut d'abord tester si le nom existe, et ensuite décider s'il faut un INSERT ou un UPDATE

$requete = "SELECT COUNT(*) as nombre FROM `classement` WHERE `nom`='$nom'";
$reponse = mysql_query ($requete) or die (mysql_error);
$reponse= mysql_fetch_array($reponse);
if ($reponse['nombre']>0) { // le nom existe déjà : on met à jour
  $requete="UPDATE classement SET points=points+$chg WHERE nom='$nom'";
else // nouveau nom : on insère
  $requete="INSERT INTO `classement` (`points`,`nom`) VALUES ('$points','$nom');
mysql_query ($requete) or die (mysql_error);
2
gyam
 
Et pour créer un champ s'il n'existe pas? Les manipulations sur table existantes, google est vraiment mon ami mais pour les champs....
1
toto
 
Bonjour

C'est vraiment un nouveau champ que tu veux créer ? Pas un nouvel enregistrement ? Tu es bien conscient de la différence entre les deux ?
0
krabs
 
tu a raison je veut créer un nouvel enregistrement, désolé pour la défaillance de vocabulaire.
0
krabs
 
Merci beaucoup pour cet aide si rapide et efficace.
0