Problème de syntaxe

Résolu/Fermé
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 - 23 août 2014 à 23:31
 Utilisateur anonyme - 24 août 2014 à 17:57
Bonjour,
Après de nombreuses et vaines tentatives je me tourne vers vous pour demander de l'aide.En effet j'essaie de faire un simple formulaire d'insertion PHP
<?php 
session_start();
include 'pdo.inc.php';
include 'activite.inc.php';
?>
<html>
<head>
<meta charset="utf-8" />
<title>Signaler un message</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<center><a href="index.php"><img src="logo3.png" title="Forum" alt="Forum" /></a></center>
<div id="barre">
<span class="left">Index > Signaler un message</span>
<?php
if(!isset($_SESSION['pseudo'])) {
echo '<span class="right"><a href="login.php">Connexion</a> • <a href="inscription.php">Inscription</a></span>';
}
else
{
?>
<?php
include 'db.inc.php';
$test_mp = mysql_query('SELECT COUNT(*) FROM mp WHERE id_destinataire="'.$_SESSION['id'].'" AND ok="0"');
$test_mp2 = mysql_fetch_row($test_mp);
$mp_non_lu = $test_mp2[0];
?>
<?php include 'menu.php'; ?>
<?php
}
?>
</div>
<?php
if(!isset($_SESSION['id'])){
echo '<p>Vous ne pouvez pas accéder à cette page !</p>';
}else{
?>
<h1 style="text-align:center;">Signaler un message</h1>
<div id="contenu">
<form method="post" action="signal.php?cat=<?php echo $_GET['cat']; ?>&id=<?php echo $_GET['id']; ?>&message_id=<?php echo $_GET['message_id']; ?>">
<?php
include 'db.inc.php';

if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') {
if(!empty($_POST['details'])){
$cat = $_GET['cat'];
$id1 = $_GET['id'];
$message_id = $_GET['message_id'];
$type = $_POST['type'];
$details = $_POST['details'];
$auteur_id = $_SESSION['pseudo'];
$ok = 0;
$date = time();

$sql = "INSERT INTO signal (numero,cat,id,msg,choix,description,auteur,date,ok) VALUES ('','$cat','$id1','$message_id','$type','$details','$auteur_id','$date','$ok')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$erreur = '<p>Vos infos on été ajoutées.</p>';
mysql_close();
}else{
$erreur = '<p>Veuillez remplir tous les champs !</p>';
}
}
?>
<?php
if(isset($erreur)){
echo $erreur;
}
?>
<label for="type">Type</label><select class="textinput" name="type">
<option value="1" selected>Propos à caractère raciste,antisémite ou discriminatoire</option>
<option value="2">Propos diffamatoires,insultants ou offensants allant à l'encontre d'un ou plusieurs membres</option>
<option value="3">Spam ou publicité</option>
<option value="4">Propos déplacés ou à caractère pornographique ou sexuel</option>
<option value="5">Autre</option>
</select><br />
<label for="details">Détails</label><textarea placeholder="Détails" class="textinput" name="details" rows="15" cols="75" autofocus></textarea><br />
<input type="submit" name="go" value="Envoyer" />
<input type="reset" value="Effacer" />
</form>
</div>
<?php
}
?>

Et voilà ce que j'obtiens :
Erreur SQL !INSERT INTO signal (numero,cat,id,msg,choix,description,auteur,date,ok) VALUES ('','1','3','2','1','dd','BaraKuda','1408829032','0')
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 'signal (numero,cat,id,msg,choix,description,auteur,date,ok) VALUES ('','1','3','' at line 1

Voici ma table sql:
https://i.vgy.me/T291KN.png

D'avance je vous remercie de votre aide,
polarbird

2 réponses

Bonsoir

Pas de bol ! 'signal' fait partie des mots réservés de mysql, évite de le prendre comme nom de base, de table ou de champ.
Tu peux si tu y tiens vraiment, mais alors entoure-le d'accents graves (Alt Gr-7) :
INSERT INTO `signal` ...

Au passage, tu as un
include 'pdo.inc.php';
mais tu n'utilises pas PDO, et tu as deux fois
include 'db.inc.php';
. Tu es sûr de savoir ce que tu fais ?
1
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 1
24 août 2014 à 17:17
Bonjour,
Merci de ton aide rapide et pertinente.J'ai vite corrigé cela.
Merci d'avoir vu l'erreur avec pdo et db.Je l'ai corrigée également.
Cordialement,
polarbird
0
Utilisateur anonyme
24 août 2014 à 17:57
De rien :-)
0