IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur de syntaxe introuvable


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Juin 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juin 2020
    Messages : 2
    Par défaut Erreur de syntaxe introuvable
    Bonjour ! J'ai un problème avec ce code qui fait un minichat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  2. #2
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Billets dans le blog
    1
    Par défaut
    Je ne pense pas que tu puisse utiliser des paramètres de requête préparée pour un limit.

  3. #3
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Juin 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juin 2020
    Messages : 2
    Par défaut
    C'est bon, j'ai trouvé une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $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->bindParam(':lone', $limit_first, PDO::PARAM_INT);
    		$reponse->bindParam(':ltwo', $limit_end, PDO::PARAM_INT);
    		$reponse->execute();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une erreur de syntaxe introuvable
    Par rudyBSD dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/07/2009, 19h03
  2. [PHP 5.2] erreur de syntaxe introuvable
    Par jmtrivia dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2009, 23h23
  3. Erreur de syntaxe introuvable
    Par joe12260 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 15/07/2008, 09h27
  4. Erreur de syntaxe introuvable sur requête
    Par manzane dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/06/2007, 10h24
  5. erreur de syntaxe introuvable
    Par salseropom dans le forum C
    Réponses: 8
    Dernier message: 01/03/2007, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo