Erreur de syntaxe introuvable
Bonjour ! J'ai un problème avec ce code qui fait un minichat :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <!DOCTYPE html>
<html>
<head>
<title>Minichat</title>
<meta charset="utf-8">
</head>
<body>
<form method="post" action="minichat_post.php">
<p><label for="pseudo">Pseudonyme :</label>
<input type="text" name="pseudo" id="pseudo" placeholder="Pseudonyme" required value=<?php echo $_COOKIE['pseudo'] ?>> <br/>
<label for="message">Message :</label>
<textarea name="message" id="mesage" placeholder="Message" rows=0 cols=15 required></textarea> <br/>
<input type="submit" value="Envoyer">
</form>
<form method="post">
<p><label for="page">Numéro de page :</label>
<input type="number" name="page" id="page" value="1" > <br/></p>
<input type="submit" value="Sélectionner la page"> </p>
</form>
<a href="refresh.php">Rafraîchir</a>
<?php
try {
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (Exception $e) {
die('Erreur :' . $e->getMessage());
}
if (isset($_POST['page']) AND $_POST['page'] > 1)
{
$good_number = (int)$_POST['page'];
$limit_first = $good_number+9;
$limit_end = $good_number+19;
$reponse = $bdd->prepare('SELECT pseudo, message, DATE_FORMAT(date_publication, \'le %d/%m/%Y à %Hh%imin%ss\') AS date_publication FROM minichat ORDER BY ID DESC LIMIT :lone, :ltwo');
$reponse->execute(array('lone' => $limit_first, 'ltwo' => $limit_end));
echo '<p><br/> Page ' . $_POST['page'] . '</p>';
} else
{
$reponse = $bdd->query('SELECT pseudo, message, DATE_FORMAT(date_publication, \'le %d/%m/%Y à %Hh%imin%ss\') AS date_publication FROM minichat ORDER BY ID DESC LIMIT 0, 10');
echo '<p><br/> Page 1</p>';
}
while ($donnees = $reponse->fetch())
{ ?>
<p><strong><?php echo strip_tags($donnees['pseudo']); ?></strong> : <?php echo strip_tags($donnees['message']); ?><br/>
<em>Date et heure d'envoi : <?php echo $donnees['date_publication'] ?></em></p>
<?php
}
$reponse->closeCursor(); ?>
</body>
</html> |
J'ai fait un système de page. La page 1 marche très bien mais quand je passe à 2, il est bien marqué "Page 2" mais... les messages ne s'affichent pas... J'obtiens deux erreurs SQL qui sont :
( ! ) Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ''11', '21'' à la ligne 1 in (emplacement du fichier) on line 35
et
( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ''11', '21'' à la ligne 1 in (emplacement du fichier) on line 35
J'ai compris les erreurs mais je ne voit pas ce qui les créés dans mon code...
J'espère que l'on pourra m'aider !