JeuWeb - Crée ton jeu par navigateur
[réglé] pbm avec mysql, UPDATE - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [réglé] pbm avec mysql, UPDATE (/showthread.php?tid=1678)

Pages : 1 2


[réglé] pbm avec mysql, UPDATE - leni - 29-08-2007

Bonsoir tout le monde, jai une fois de plus besoin de votre aide !

voila le probleme : j'ai une page qui comporte des amelioration, que le membre peu effectuer si il en as les moyens (logique ^^ ). Le code est donc sur 2 pages : le QG.php, et achat.php . Le qg comporte les ameliorations,
voici un morceau de code :
Code PHP :
<?php 
if ($donnees['nombresoldat'] >= 10000 && $donnees['or'] >= 70000)
{
echo
'<a href="achat.php?id=casque&lvl=3&prix=70000">ameliorer vos casques</a>';
}

else
{
echo
'vous n\'avez pas rempli toutes les conditions necessaires pour ameliorer vos casques.';
}

et la page achat.php, qui se charge de traiter les donnés qu'on lui as fait passer dans le <a href="achat.php?<couleur nom="rouge">id=casque&lvl=3&prix=70000</couleur>">
voici un bout de code :
Code PHP :
<?php 
$id
=mysql_real_escape_string(htmlspecialchars($_GET['id']));
$lvl=intval(htmlspecialchars($_GET['lvl']));
$prix=intval(htmlspecialchars($_GET['prix']));


if (
$id == casque)
{
if (
$lvl == 1)
{
// l'amelioration pour le niveau 1 (un copier coller ou presque du niveau 3
}
elseif (
$lvl == 2)
{
// l'amelioration pour le niveau 2
}
elseif (
$lvl == 3)
{
// pour le niveau 3, c'est celui qui nous interesse.
if ($donnees['or'] < 10200 or $donnees['casque'] =! 2)
{
echo
'Vous n\'avez pas assez d\'or ou vos casques ne correspondent pas au niveau de cette amelioration.<br>
Pour retourner au QG, cliquez <a href="QG.php" class="menu1">ici.</a><br>'
;
}
else
{
$or2 = $donnees['or'] - 10200;
$pts = $donnees['points'] + 1000;
$req= mysql_query("UPDATE user SET or='".$or2."', casque='3', points='".$pts."' WHERE pseudo='".$_SESSION['pseudo']."'");



if (
$req == true)
{
echo
'Votre achat a été validé <br>';
echo
'vous avez acheté les casques niveau 3!<br>
Pour retourner au QG, cliquez <a href="QG.php" class="menu1">ici.</a><br>'
;

}
else
{
echo
'Il y a eu un probleme lors de la requete, l\'achat a été annulé.<br>';
}

}
}
[/
php]

dans le code, tout a l'air de fonctionner, mais non ... la requete ne se fait pas :'( quelqu'un serai me dire pourquoi ?

merci d'avance, et bonne soirée Wink


RE: pbm avec mysql, UPDATE - Imhotep2 - 29-08-2007

Salut, peux tu dire ce qu'il t'indique ? message d'erreur ? page blanche ? Dans ce cas mets des echo "machin chose"; histoire de voir ce qu'il fait exactement.

Sinon, ça m'étonne qu'il accepte 'or' en nom de champ, easyphp me le refusant puisque c'est un outil de comparaison.[/php]


RE: pbm avec mysql, UPDATE - Loetheri - 29-08-2007

Le mot OR est un mot réservé ... Il vaut mieux s'abstenir de l'utiliser pour autre chose que son utilisation initiale ;-)


RE: pbm avec mysql, UPDATE - transgohan - 29-08-2007

Ou alors il faut le citer comme cela : `or`
Et là plus de problème. ^^
Mais préfères un autre mot plutôt, dictionnaire des synonymes est un bon ami de mysql. ^^


RE: pbm avec mysql, UPDATE - leni - 29-08-2007

quel autre mot me suggereriez vous ? (beg dans l'orthaugraphe de suggerer xD)

voici le message d'erreur :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or='115000', lvlqg='2', attqg='1.1', deffqg='1.2', points='2500' WHERE pseudo='m' at line 1


RE: pbm avec mysql, UPDATE - Globe - 29-08-2007

gold, argent, credit, diamants... je sais pas n'importe, c'est pas important c'est juste pour la bdd, tu peux l'appeller ressource si ça te chante.


RE: pbm avec mysql, UPDATE - Loetheri - 29-08-2007

ou au ... comme son symbole chimique


RE: pbm avec mysql, UPDATE - Imhotep2 - 29-08-2007

dans ma base de donnée j'avais mis nbor comme ça j'avais toujours or de marqué. A toi de voir ce qui t'arrange le mieux. Si tu remplaces le 'or' , que marque-il maintenant ?


RE: pbm avec mysql, UPDATE - leni - 29-08-2007

dsl, j'avais mal compris ...je penssais que vous parliez du or qui signifie "ou" ^^
je doute que le pbm vienne de là, car il est dans des [' ']... j'ai essayer de le mettre dans des `` mais rien a fair, sa marche pas ...
Loetheri, tu as dis sa expret pour me perdre encor plus c'est sa ?!? mdr

quelqu'un voit d'ou vien l'erreur ?


RE: pbm avec mysql, UPDATE - pascal - 29-08-2007

c'est au niveau de or que ça plante, cf message d'erreur.

tu peux lire le tutorial en lien dans ma signature, c'est une mine... d'or pour debugguer le SQL.

A+

Pascal