[MySQL] Problème d'UPDATE

Résolu
Sethpolma Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -  
Sethpolma Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Alors voilà ! J'ai un petit problème au niveau de la création d'un espace membres. Je m'explique...

Je propose à mes membres de modifier leur liste de jeux possédés (c'est le site d'un clan XBox Live). J'ai donc mis à leur disposition un formulaire avec Checkbox. Jusque là, rien d'extraordinaire.

function Liste($nom)
{
     $sql = "SELECT * FROM jeux WHERE Gamertag = '" $_SESSION["login"]."'";
     $req = mysql_query($sql);						
     $data = mysql_fetch_assoc($req);

     echo("<input type='checkbox' name='JeuxLive[]' value='$nom' ");
     if( $data[trim($nom)] == 1 ) echo("checked");
						echo("> ".$nom."<br/><br/>");
}


Comme vous l'aurez compris, je stockerais les résultats dans le tableau JeuxLive[]. Cette partie du code fonctionne : j'ai essayé avec des echos d'en voir le contenu, et pas de problèmes.

Ensuite, je veux modifier les valeurs contenues dans ma base de données en conséquence. Et c'est là que je m'arrache les cheveux !

$JeuxLive = $_POST['JeuxLive'];
$n = count($JeuxLive);
$i = 0;
  
while( $i < $n )
{
    $sql = "UPDATE jeux SET '$JeuxLive[$i]' = 1 WHERE Gamertag = '$login'";
    $req = mysql_query($sql) or die(mysql_error());
	
    if($req) echo("Ca marche ! <br/>");
	
    $i++;
}


Apparement, le problème viendrait de la requête $sql. Voici le message d'erreur qu'il me met lors de l'exécution de ce script :

"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 ''Splinter Cell : Pandora Tomorrow' = 1 WHERE Gamertag = 'test'' at line 1"

Je ne sais plus franchement quoi faire... Si quelqu'un peut m'aider !

Si vous voulez voir un peu par vous même le site, voici l'adresse : http://www.guildepandora.c.la . Voici une combinaison d'entrée :

Login : test
Pass : 123

Merci de ne pas les changer (que tout le monde puisse essayer de m'aider). Autre petite chose, ça ne marche pas sous Internet Explorer. Je ne sais absolument pas comment corriger ce problème (le logging semble inactif).

Merci beaucoup !
A voir également:

4 réponses

crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
Salut,
si tu veux une aide efficace, donnes à la place de l'adresse de ton site la structure
de tes tables.
A+, crabs
0
Sethpolma Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   15
 
La structure de ma table est la suivante :

--------------------------------------------------------
| id | Gamertag | JEU1 | JEU2 | .......
--------------------------------------------------------
| INT | VARCHAR | TINYINT| TINYINT | .....
---------------------------------------------------------

J'ai utilisé des TINYINT, car je n'ai pas trouvé de type BOOL ou BOOLEAN.
0
crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
Salut
Il faut mettre des 'back-quote' (`) autour du nom des champs.
Sinon ta structure n'est pas viable, tu sera obligé de changer la structure de
ta table pour ajouter un jeu (aie!!!!!!!!!)
Fais plutôt une table utilisateur - que tu dois déja avoir puisque tu gère des
membres - n'oublies pas de mettre le pseudo en clé primaire
Ensuite une table jeu qui décrit tes jeux en mettant un id (int auto increment)
comme clé primaire.
Ensuite tu gère un table relation (pseudo, id_jeux). Tout enregistrement dans
cette table permet de dire "le membre pseudo a le jeu identifié par id".

Ensuite tu te renseignes sur les jointures (soit relationnelle pure, soit JOIN)
pour construire tes requettes.
=> plus efficace
=> gestion plus simple des jeux : ajout, modification, suppression, ...

Ensuite tu pourra ajouter des fonctionnalités autour de la relation :
- note du jeu par le membre
- son appréciation
- date d'obtention
- ...

A+, crabs
0
Sethpolma Messages postés 66 Date d'inscription   Statut Membre Dernière intervention   15
 
OK. Merci beaucoup !

Je vais essayer de faire tout ça. Je repasserai très probablement demander un peu d'aide concernant la table de relations. Car, je crois avoir compris le principe, mais après niveau code...
0