[MySQL]Peut-on mettre une condition IF dans un UPDATE? [Résolu]

Signaler
Messages postés
4
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
16 mars 2007
-
Messages postés
4
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
16 mars 2007
-
Bonjour,
Je suis actuellement sur la programation d'un jeu de rôle en ligne, et chaque joueur possède des PA (Point d'action), il faut que leur PA respectif augmente de 1 toute les 6min.
Cependant il y a un max de PA possible- pas plus de 240 - et ce même si 3 semaine ce sont écoulées.
Cette dernière volonté (^^), exige un SELECT avant mon UPDATE, je voulai savoir s'il est possible de faire autrement juste avec un UPDATE (condition IF dans un UPDATE ôO )
Voila la fonction que j'utilise :

function Update_PA ($userID) {
$Duree_1Tour = 360; //Duré d'un Tour en seconde
$Gain_1Tour = 1; //PA par Tour

mysql_connect('localhost','root','')
or die ('impossible de se connecter');
mysql_select_db('loe')
or die ('impossible de trouver la base');

$sql = "SELECT Tour,PA FROM caracteristique WHERE userID='$userID'";
$req = mysql_query($sql) or die ('erreur
'.$sql.'
'.mysql_error());
$data = mysql_fetch_array($req);
if (isset($data[0])) {
$Date_Actuel = time();
$Nb_Tour = floor(($Date_Actuel-$data[0]) / $Duree_1Tour);

$New_PA = $data[1]+$Nb_Tour*$Gain_1Tour;
$New_Tour = $data[0]+($Nb_Tour*$Duree_1Tour);

if ($New_PA >= 240) {
$New_PA = 240;$New_Tour=$Date_Actuel;
}

$sql = "UPDATE caracteristique SET PA=$New_PA, Tour=$New_Tour WHERE userID='$userID'";
$req = mysql_query($sql) or die ('erreur
'.$sql.'
'.mysql_error());
}
mysql_close();
}

Merci d'avance

4 réponses

Messages postés
699
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
13 mai 2011
19
Bonjour,

pourquoi tu n'utiliserais pas plutôt une deuxième condition dans ton WHERE ?

UPDATE caracteristique SET PA=$New_PA, Tour=$New_Tour WHERE userID='$userID' AND PA < 240

Comme ça tu ne mets à jour que les personnes qui ont un PA inférieur à 240, ce qui revient au même qu'un IF.

Fanny
Messages postés
88
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
3 mai 2005

Slt,
Nan le IF dans un UPDATE n'est pas possible : normal, IF ne correspond pas à du mysql mais a un langage propre (PHP dans ton cas) ;)

- Psy -
Messages postés
4
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
16 mars 2007

Je sais cependant il existe un IF dans les SELECT il me semble...
Merci quand meme je vais faire sans^^
Messages postés
4
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
16 mars 2007

Merci Fanny je vais faire comme ca^^