Version complète: sur le forum Webmaster Hub : phenomenes etranges
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
covin85
bonjour il se page des chose très etrange en ce moment sur mon site.

1\ Le classement des joueurs:

Les joueurs sont classé avec le code suivant
CODE
$req = mysql_query("SELECT login , piece FROM membre ORDER by piece DESC");              
                                                                
while ($myrow = mysql_fetch_array($req)) {                                

echo "<td>".$myrow["login"]."</td>";
echo "<td>".$myrow["piece"]."</td><tr>";
}



Et le pire de tout c'est que dans phpmyadmin cela le fait aussi


wacko.gif

2/Update

J'ai créer un lien permettant de faire augmenter les pieces:

CODE
$sql = 'UPDATE membre SET piece=piece+100';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

Ce code marche,donc logiquement je fait EXACTEMENT pareille pour augementer la "force" :
CODE
$sql = 'UPDATE membre SET force=force+100';

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());


et regarder ce que cela me repond:

CITATION
Erreur SQL !UPDATE membre SET force=force+100
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 'force=force+100' at line 1



Dite moi que je ne suis pas fous!! sad.gif
Dan
J'ai supprimé tes images énormes avec de larges bandeaux noirs.
D'autant plus qu'elles ne permettent pas de comprendre ton problème qui est mal expliqué !

Si tu es surpris de l'ordre de classement des résultats (qui n'est pas correct apparemment) regarde comment tu as défini le champ 'piece'.

Si tu veux un classement numérique (là il est alphabétique), il faut le définir comme "integer" et non comme "char" ou "varchar" smile.gif

En char, on classera: 1, 200, 30, 8
Et en integer: 1, 8, 30, 200

Ca change, non ?

Dan
Bourinho
+1... je comprends rien non plus...

A part peut-être une piste pour l'erreur dans le UPDATE : force n'est peut-être pas dans un type numérique...

A+
TheRec
Bonjour,

"FORCE" (ou tout autre variation de case, comme "force") est un mot réservé MySQL ... à ne jamais utiliser comme nom de champ ou de table lorsqu'on crée un schéma de base de données...change le nom de ton champ dans la base de données.
(Tu as pu l'utiliser pour créer ta table car dans une requête CREATE ce mot clé n'est pas "réservé"...mais dans un UPDATE oui).

Bonne continuation.
MS-DOS_1991
A noter que l'on peut échapper le nom des champs avec des guillemets inversés ` pour éviter ces problèmes :
SQL
`timestamp` | `force`

Attention toutefois : cette synthaxe n'est je crois supportée que par MySQL rolleyes.gif
covin85
daccord vous avez resolu tous se qui me parraissait tres bisard merci beaucoup,
désolé pour le texte implicite mais c'est que j'ai oublier des phrases sad.gif

Dernière question,pourquoi ya t-il un decalage dans la classement,regarder le membre test et monter beaucoup plus haut:
http://img225.imageshack.us/my.php?image=sanstitre6lg1.jpg
TheRec
Qu'entends-tu par "regarder le membre test et monter beaucoup plus haut" ?
Fais un petit effort au niveau de la grammaire, je t'avoue que ça joue beaucoup lorsqu'il s'agit de comprendre... on n'est pas à la dictées de Pivot non plus, mais cela fait partie des règles du forum, merci d'avance.

Si je me force un peu et que je traduis ça par "regardez le membre test est monté beaucoup plus haut", je miserait plutôt sur un problème (X)HTML/CSS ... si tu as utilisé un tableau pour présenter ces lignes, regarde si tu ne t'es pas trompé dans la syntaxe de celui-ci pour une des lignes...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.