actualiser base de donné

Répondre
covin85
le 06/07/2006 à 03:41
covin85
Bonjour
je voudrai savoir si il est possible d'actualiser une basse de donné,dans ce cas.

pour etre très concret:

J'ai un champ "vie" dans une valeur de "25"
dans le code :
j'enlève "25" au champ "vie"
Si "vie" = 0 alor ajouter "1" au champ "frague"

Mon problème est que le rajout de "1" au champ frague ne se fait que après la repition de l'action.

J'avoue c'est pas très claire.En gros j'ai crée un code (d'attaque pour un jeux rpg).

$sql = "UPDATE membre SET vie=vie-5 WHERE id='".$_GET['id']."'";

$fafa = "UPDATE membre SET frague=frague+1 WHERE login='".$_SESSION['login']."'";

if ($_SESSION['inte'] >= $res['inte'] )
{
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
}

if ($res['vie'] == 0 )
{
mysql_query($fafa) or die('Erreur SQL !'.$sql.''.mysql_error());
}


Mais $fafa ne s'execute que a la repition d'une deuxieme fois du code c'est a dire,lorsque la valeur vie est egale a 0 au debut du code,il faudrait donc actualiser la base de donné juste avant d'exécuté $fafa

En esperant avoir été claire :)
merci
moogli
le 06/07/2006 à 06:01
moogli
salut,

d'ou sort $res['vie'] ?
d'une requete précédente ?
si oui c'est normal que cela ne fonctionne pas comme tu le souhaite.
les infos que tu te retourne mysql sont figé. il s'agit des infos au moment de la requete ( comme une photo quoi). Il est donc normal que les infos de la requete précédente n'ai pas changer si n'y touche pas !

tu peut dans ce cas modifer le paramètre $res['vie'], ou alors ajouter une condition dans le where vie=0 ! c'est bourrin mais ça fonctionne :-)
UPDATE membre SET frague=frague+1 WHERE login='".$_SESSION['login']."' && vie=0"
tu execute la requete a chaque fois.

le mieux biensur étant de connaitre cette valeur via php dès le départ, c'est plus simple / performant !

smiley
Il en faut peu pour être heureux !!!!!
covin85
le 06/07/2006 à 15:15
covin85
salut

Qu'entent tu par "tu execute la requete a chaque fois?"

Car j'ai essaye de rajouter "&& vie=0" mais c'est pareille.

$res c'est sa :

$popo = mysql_query("SELECT login,puisan,def,rap,inte,pre,vie FROM membre WHERE id='".$_GET['id']."'");
$res = mysql_fetch_array($popo);
moogli
le 06/07/2006 à 17:06
moogli
a chaque fois veut dire quelque soit la valeur de vie dans la bdd ....

je sais pas ce qu'il y a dans ta bdd, je ne peut donc savoirsi cela peut fonctionner !

le && vie=0 permet de faire l'update sur un tuple qui la valeur du login, dans la variable de session, mais aussi dont la valeur du champ vie est zéro !

quand a $res je t'ai déja expliqué pourquoi sont utilisation n'est aproprié dans le ce cas précis !

@+
Il en faut peu pour être heureux !!!!!
covin85
le 06/07/2006 à 21:00
covin85
j'ai une question tout bête,si il yen as,quelle est le nom du type de champ permettant d'avoir uniquement des nombres entier positif dans la base de donné.
exemple (int:tt les nombres...)
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours