Votre question

Enorme souci PHP!!!!!!!!

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
16 Septembre 2005 15:46:00

Salut à tous...
J'ai créé une fonction que voici:
function modificateur($valeur)
{
if ($valeur == 3)
{
$_SESSION['value'] = -4;
}
elseif (($valeur == 4) or ($valeur == 5))
{
$_SESSION['value'] = -3;
}
elseif (($valeur == 6) or ($valeur == 7))
{
$_SESSION['value'] = -2;
}
elseif (($valeur == 8) or ($valeur == 9))
{
$_SESSION['value'] = -1;
}
elseif (($valeur == 10) or ($valeur == 11))
{
$_SESSION['value'] = 0;
}
elseif (($valeur == 12) or ($valeur == 13))
{
$_SESSION['value'] = 1;
}
elseif (($valeur == 14) or ($valeur == 15))
{
$_SESSION['value'] = 2;
}
elseif (($valeur == 16) or ($valeur == 17))
{
$_SESSION['value'] = 3;
}
elseif ($valeur == 18)
{
$_SESSION['value'] = 4;
}
}
(Ne me dites pas utilise switch et utilise autre chose que $_SESSION, j'ai essayé pas mal de code différent et il n'y a que celui-ci qui a fonctionné!!!)
En dessous il y a ça:
modificateur($_POST['force']);
mysql_query ('UPDATE `heros` SET force="'.$_SESSION['value'].'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
modificateur($_POST['dex']);
mysql_query ('UPDATE `heros` SET dex="'.$_SESSION['value'].'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
modificateur($_POST['con']);
mysql_query ('UPDATE `heros` SET con="'.$_SESSION['value'].'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
modificateur($_POST['int']);
mysql_query ('UPDATE `heros` SET int="'.$_SESSION['value'].'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
modificateur($_POST['sag']);
mysql_query ('UPDATE `heros` SET sag="'.$_SESSION['value'].'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
modificateur($_POST['cha']);
mysql_query ('UPDATE `heros` SET cha="'.$_SESSION['value'].'" WHERE pseudo="'.$_SESSION['pseudo'].'"');

(appel à la fonction puis inscription dans la BDD)...
Seulement allez savoir pourquoi, seul "force" et "int" restent inchangés dans la BDD....pourquoi?????????? :-o :-o
AIDEZ MOI SVPPPPP :-(
Merci ;-)

Autres pages sur : enorme souci php

16 Septembre 2005 15:55:09

FORCE et INT sont des mots clefs de mysql.
Je te conseille donc de proteger le noms des champs sur toutes tes requêtes, celà t'évitera ce genre de problème.

ex : mysql_query ('UPDATE `heros` SET `int`="'.$_SESSION['value'].'" WHERE `pseudo`="'.$_SESSION['pseudo'].'"');

ps : ton code est crade, switch c'est mieu :D 
16 Septembre 2005 16:13:47

à oui en effet, c'est bien ça...merci....
Pour switch, je sais bien que ça aurait été mieu mais dd'une part ça m'oblige a faire un code plus long (sauf si tu me donne une astuce pour faire les "$valeur == 4 or $valeur == 5" dans la case)
Contenus similaires
a c 232 L Programmation
16 Septembre 2005 16:16:39

Tiens un exemple :
  1. <?php
  2. switch ($i) {
  3. case 0:
  4. case 1:
  5. case 2:
  6. print "i est plus petit que 3 mais n'est pas négatif";
  7. break;
  8. case 3:
  9. print "i égale 3";
  10. }
  11. ?>
16 Septembre 2005 17:04:11

Salut omar
Bien merci à tous les deux pour vos réponses...
Tout marche;) ....@+
16 Septembre 2005 17:36:54

<?php
function modificateur($valeur) {
switch($valeur) {
case 3:
$_SESSION['value'] = -4;
break;

case 4:
case 5:
$_SESSION['value'] = -3;
break;

case 6:
case 7:
$_SESSION['value'] = -2;
break;

......
}
}
?>
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS