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 :

bug de mon code pour afficher des donnes BDD a partir de l'id transmise [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Debutant
    Inscrit en
    Mars 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Debutant

    Informations forums :
    Inscription : Mars 2011
    Messages : 30
    Points : 28
    Points
    28
    Par défaut bug de mon code pour afficher des donnes BDD a partir de l'id transmise
    Bonjour,

    mon problème est le suivant: je créé un système de blog, et je veux ouvrir un page commune article.php pour tous les articles et je veux envoyer avec GET l'id de l'article concerné et en profité, une fois sur la page article.php pour récupérer toutes les autres donnes correspondant a cet ID et aussi les commentaires par la suite.
    1erement je préférais faire un lien permanent par article mais j'ai pas encore compris l'URL rewriting
    2emement j'ai du mal a résoudre mes erreurs parce que même si la formation était intéressante, elle ne me permet pas de bien comprendre les fonctions ni le les manier ou même d'en choisir de plus adaptes.

    Voici dont mes codes:

    le lien pour afficher l'article dans une page spécifique sur index.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="article.php?id=<?php echo $donnees['id'] ?>">commentaire ()</a>
    et le code de article.php:
    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
    		<?php
     
    			if (isset($_GET['id']))
    			{
    				try
    				{
    					$bdd = new PDO('mysql:host=localhost;dbname=citations', 'root' , '');
    					$req=$bdd->exec('SELECT id, titre, categorie, article, DATE_FORMAT(date_art, \'%d/%m/%Y à %Hh%imin\') AS date_art_fr FROM billet WHERE id = ' . $_GET['id']);
     
    						while ($donnees = $req->fetchAll())
    					{
    		?>
     
    		<div class="articles">
     
    			<span id="titre"><?php echo $donnees['titre']; ?></span><br />
    			<span id="date"><?php echo $donnees['date_art_fr']; ?><br />
    			Catégorie : </span><span id="categorie"><?php echo $donnees['categorie']; ?></span>
     
    			<div id="article"><?php echo nl2br($donnees['article']); ?></div>
     
     
    		</div>
     
    		<?php
    					}
     
    					$req->closeCursor();
    				}
     
    				catch(Exception $e)
    				{
    				die('Erreur : '.$e->getMessage());
    				}
    			}
    		?>

    voila je pense que mon problème vient de l'utilisation de if et de try/while, le problème c'est que je ne connais pas d'alternative.

    L'erreur qui m’apparaît et la suivante :
    Fatal error: Call to a member function fetchAll() on a non-object in C:\wamp\www\citations\article.php on line 39
    line 39 étant la fonction while

    Merci de votre aide

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Relisez la documentation, exec ne renvoie pas un objet PDOStatement et ne convient pas à une requête SELECT. C'est la méthode query qu'il faudrait utiliser en non-préparé.

    (belle injection, au passage)

    Si tu veux une bonne formation, regarde plutôt ces cours et tutoriels pour apprendre PHP : http://php.developpez.com/cours/

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Debutant
    Inscrit en
    Mars 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Debutant

    Informations forums :
    Inscription : Mars 2011
    Messages : 30
    Points : 28
    Points
    28
    Par défaut
    Merci deja de votre reponse super rapide et aussi de m'avoir bebeuge ce fatal error et de m'avoir appris la difference entre query et exec.

    Pour l'injection je dois remercier m4riachi qui me l'a apprise.


    Maintenant j'ai un nouveau probleme puisque ca ne semlbe pas réussir a appeler les donnes correspondantes a l'ID tramsise ca me donne ca pour chaque donnees appeler :

    Notice: Undefined index: titre in C:\wamp\www\citations\article.php on line XX

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 109
    Points
    109
    Par défaut
    Salut, c'est probablement qu'il ne trouve le champ titre dans ta bd, regarde s'il est présent et s'il n'est pas en majuscule par ex.

    Alpha.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Debutant
    Inscrit en
    Mars 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Debutant

    Informations forums :
    Inscription : Mars 2011
    Messages : 30
    Points : 28
    Points
    28
    Par défaut
    c'est vrai que le titre est en majuscule et avec des espace, mais cette erreur apparait aussi pour la categorie, la date, le contenu, pour toutes les donnees que j'appelle en fait.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Debutant
    Inscrit en
    Mars 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Debutant

    Informations forums :
    Inscription : Mars 2011
    Messages : 30
    Points : 28
    Points
    28
    Par défaut
    ouf! j'ai fini par resoudre le probleme.

    Pour ceux que ca peux interesser j'ai simplement enlever la fonction while pour le laisser que :

    $donnees = $req->fetch();

    voila donc apparement la fonction while n'avait pas sa place ici.

    Merci a julp pour l'eclaircissement sur l'utilisation de 'exec' et de 'query'.
    Mais une petite question malgre tout, j'ai vu 'prepare' aussi, quelle est la difference avec query ?

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

Discussions similaires

  1. [XL-2007] Adapter code pour coller des données dans disq C
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/03/2012, 13h50
  2. Proc. stockees pour afficher des données
    Par asenaici dans le forum Bases de données
    Réponses: 4
    Dernier message: 01/12/2011, 10h54
  3. code pour envoyer des données
    Par pierrrro dans le forum C++
    Réponses: 1
    Dernier message: 13/05/2011, 17h41
  4. Code pour afficher des fichiers de syntaxe similaire
    Par Richard_Rahl dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 24/10/2008, 11h09
  5. [MySQL] rejoindre deux requêtes pour afficher des données
    Par schats dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/12/2007, 14h19

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