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 :

Requête qui pose problème


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Par défaut Requête qui pose problème
    Bonsoir,
    Voici une partie de mon code source :

    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
    <?php
    			if(isset($_POST['pageBillets']))
    			{
    				$nombreEntrees = $bdd->query('SELECT COUNT(*) as nombre FROM billets');
    				$nombrePages = $nombreEntrees->fetch();
    				$nombrePages['nombre'] /= 5;
    				$nombrePages2 = ceil($nombrePages['nombre']);
    				$nombreEntrees->closeCursor();
    				$resultat = $bdd->prepare('SELECT *, DATE_FORMAT(date_creation, \'%d/%m/%y %h:%i:%s\') as date_creat FROM billets ORDER BY id DESC LIMIT ?,5');
    				$resultat->execute(array($_POST['pageBillets']));
    			}
    			else
    			{
    				$nombreEntrees = $bdd->query('SELECT COUNT(*) as nombre FROM billets');
    				$nombrePages = $nombreEntrees->fetch();
    				$nombrePages['nombre'] /= 5;
    				$nombrePages2 = ceil($nombrePages['nombre']);
    				$nombreEntrees->closeCursor();
    				$resultat = $bdd->query('SELECT *, DATE_FORMAT(date_creation, \'%d/%m/%y %h:%i:%s\') as date_creat FROM billets ORDER BY id DESC LIMIT 0,5');			
    			}
    			while($donnees = $resultat->fetch())
    			{
    		?>
    				<h3><span id="h3_titre"><?php echo strip_tags($donnees['titre']);?></span><span id="h3_auteur"><?php echo strip_tags($donnees['auteur']);?></span><span id="h3_date"><?php echo $donnees['date_creat'];?></span></h3>
    				<p id="billet_contenu"><?php echo strip_tags($donnees['contenu']) . '   ';?></p>
    				<p id="billet_commentaire"><a href="index.php?billet=<?php echo $donnees['id'];?>">Les commentaires...</a></p>
    		<?php
    			}
    			$resultat->closeCursor();
    			if($nombrePages2 > 1)
    			{
    		?>
    				<form method="post" action="index.php">
    					<p>
    						<label for="pageBillets">Selectionnez la page de la news souhaité : </label>
    						<select name="pageBillets" id="pageBillets">
    							<?php $page = 0;?>
    							<option value="<?php echo $page;?>">Page 1</option>
    		<?php
    						for($i=2;$i<=$nombrePages2;$i++)
    						{
    							$page+=5;
    		?>
    							<option value="<?php echo $page;?>">Page <?php echo $i;?> </option>
    		<?php
    						}
    		?>
    						</select>
    						<input type="submit" />
    					</p>
    				</form>
    		<?php
    			}
    		?>
    Ce code affiche les entrées et un formulaire. Il Permet également de sélectionner des pages pour remonter dans les archives (entrées anciennes).
    Le problème se situe au niveau de la requête préparée dans le if. Je ne sais pas ou est l'erreur, mais il y a une erreur de syntaxe. Pouvez-vous svp me l'indiquer car je ne la trouve pas.

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    ça nous aiderait de connaître le message d'erreur que tu obtiens.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Par défaut
    Bonjours rawsrc,

    Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''5',5' at line 1

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    casting incorrect : essaies avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $limit = intval($_POST['pageBillets']);
    $resultat->execute(array($limit));

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Par défaut
    J'ai remplacer ceci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat->execute(array($_POST['pageBillets']));
    ...par tes 2 lignes de codes. Il y a toujours le même problème.

    Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''5',5' at line 1

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Ah bon ?
    On va changer un peu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $resultat = $bdd->prepare('SELECT *, DATE_FORMAT(date_creation, "%d/%m/%y %h:%i:%s") as date_creat FROM billets ORDER BY id DESC LIMIT :limit, 5');
    $resultat->bindValue(':limit', intval($_POST['pageBillets']), PDO::PARAM_INT);

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

Discussions similaires

  1. [AC-2007] Requête avec sous requête qui pose problème
    Par redoran dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/04/2014, 16h46
  2. Requête SQL qui pose problème
    Par berko dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/11/2013, 14h02
  3. Requête qui pose problème
    Par Tifany.Pitel dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 11/11/2011, 16h47
  4. Une requête qui pose problème
    Par supertoms dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/04/2008, 18h25
  5. Un cast de SmartPointer qui pose probléme
    Par Higestromm dans le forum C++
    Réponses: 3
    Dernier message: 13/10/2005, 10h25

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