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

Messages postés
5
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
16 mars 2007
- - Dernière réponse : shidame
Messages postés
5
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
16 mars 2007
- 2 août 2004 à 15:49
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
699
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
13 mai 2011
18
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 105 internautes nous ont dit merci ce mois-ci

Commenter la réponse de HFanny
Messages postés
88
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
3 mai 2005
0
Merci
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 -
Commenter la réponse de cs_Psy
Messages postés
5
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
16 mars 2007
0
Merci
Je sais cependant il existe un IF dans les SELECT il me semble...
Merci quand meme je vais faire sans^^
Commenter la réponse de shidame
Messages postés
5
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
16 mars 2007
0
Merci
Merci Fanny je vais faire comme ca^^
Commenter la réponse de shidame

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.