par
Vulfhelm » 18 juil. 2011, 20:23
Bonjour,
Je suis en train de faire un formulaire pour créer des personnages sur mon site, et depuis bientôt 2jours, je me retrouve face à une erreur qui est très certainement toute bête mais qui me pose un gros problème, je ne peux pas avancer...
Voici l'erreur affichée :
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 , Intelligence , Recup ' at line 9
Énervant...
J'ai essayé en enlevant " Vie, Force, Intelligence, Recup " ainsi que leurs valeurs, et là miracle ! Tout se passe bien... Mais c'est que j'ai vraiment besoin de ces valeurs...
Voici mon code :
Code : Tout sélectionner
// Affiche le formulaire si l'utilisateur est connecté
if(!isset($_COOKIE["ID_UTILISATEUR"]))
{
header("Location: index.php");
}
else
{
// Formulaire visible par défaut
$masquer_formulaire = false;
// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!ereg("^[A-Za-z_]{3,12}$", $_POST["TB_Nom_Perso"]))
{
$message = "Votre nom de personnage doit comporter entre 4 et 12 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("localhost", "root", "");
mysql_select_db("*****");
// Vérification de l'unicité du nom du perso
$result = mysql_query("
SELECT Nom_Perso
FROM Personnages
WHERE Nom_Perso = '" . $_POST["TB_Nom_Perso"] . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
if($_POST["TB_Nom_Perso"] == $row["Nom_Perso"])
{
$message = "Le nom " . $_POST["TB_Nom_Perso"];
$message .= "est déjà utilisé";
}
}
}
else
{
// Création du personnage
$result = mysql_query("
INSERT INTO Personnages(
Nom_Perso
, Classe
, Argent
, Ptsstats
, Level
, Compte
, Vie
, Force
, Intelligence
, Recup
)
VALUES(
'" . $_POST["TB_Nom_Perso"] . "'
, '1'
, '10'
, '0'
, '1'
, '" . $_COOKIE["ID_UTILISATEUR"] . "'
, '10'
, '10'
, '10'
, '10'
)
");
// Si une erreur survient
if(!$result)
{
die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}
else
{
// On masque le formulaire
$masquer_formulaire = true;
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
Voilà, si vous reperez l'erreur, car moi je pense que je vais acheter des lunettes

, félicitations et grand merci!
Ou même si vous avez une solution alternative, elle serait la bienvenue

) !
En attendant merci d'avoir passé quelques instants sur mon post!
Vulfhelm.
Bonjour,
Je suis en train de faire un formulaire pour créer des personnages sur mon site, et depuis bientôt 2jours, je me retrouve face à une erreur qui est très certainement toute bête mais qui me pose un gros problème, je ne peux pas avancer...
Voici l'erreur affichée :
[b]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 , Intelligence , Recup ' at line 9 [/b]
Énervant...
J'ai essayé en enlevant " Vie, Force, Intelligence, Recup " ainsi que leurs valeurs, et là miracle ! Tout se passe bien... Mais c'est que j'ai vraiment besoin de ces valeurs...
Voici mon code :
[code]// Affiche le formulaire si l'utilisateur est connecté
if(!isset($_COOKIE["ID_UTILISATEUR"]))
{
header("Location: index.php");
}
else
{
// Formulaire visible par défaut
$masquer_formulaire = false;
// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!ereg("^[A-Za-z_]{3,12}$", $_POST["TB_Nom_Perso"]))
{
$message = "Votre nom de personnage doit comporter entre 4 et 12 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("localhost", "root", "");
mysql_select_db("*****");
// Vérification de l'unicité du nom du perso
$result = mysql_query("
SELECT Nom_Perso
FROM Personnages
WHERE Nom_Perso = '" . $_POST["TB_Nom_Perso"] . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
if($_POST["TB_Nom_Perso"] == $row["Nom_Perso"])
{
$message = "Le nom " . $_POST["TB_Nom_Perso"];
$message .= "est déjà utilisé";
}
}
}
else
{
// Création du personnage
$result = mysql_query("
INSERT INTO Personnages(
Nom_Perso
, Classe
, Argent
, Ptsstats
, Level
, Compte
, Vie
, Force
, Intelligence
, Recup
)
VALUES(
'" . $_POST["TB_Nom_Perso"] . "'
, '1'
, '10'
, '0'
, '1'
, '" . $_COOKIE["ID_UTILISATEUR"] . "'
, '10'
, '10'
, '10'
, '10'
)
");
// Si une erreur survient
if(!$result)
{
die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}
else
{
// On masque le formulaire
$masquer_formulaire = true;
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
[/code]
Voilà, si vous reperez l'erreur, car moi je pense que je vais acheter des lunettes :-D, félicitations et grand merci!
Ou même si vous avez une solution alternative, elle serait la bienvenue :o) !
En attendant merci d'avoir passé quelques instants sur mon post!
Vulfhelm.