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 :

Récupération des résultats d'une requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut Récupération des résultats d'une requête
    Bonsoir tout le monde

    Voilà, j'ai un énorme soucis que je n'arrive pas à résoudre.

    Je souhaite créer une galerie d'images pour insérer dans un espace d'administration.

    pour cela j'ai crée deux tables (categorie et images), j'arrive à uploader, à insérer des nouvelles catégories, à faire ressortir mes catégories sur une page jusque là, pas de soucis.

    Ou ça se corse, c'est quand je mets un lien sur la catégorie pour voir les images qui lui sont affiliées.

    J'ai l'erreur suivante :
    Fatal error: Call to a member function fetchAll() on a non-object in /home/......................./modules/voir_galerie.php on line 13

    J'ai tout essayé mais je n'arrive pas à faire sortir les images selon les catégories cliquées.

    Voici mon script :

    1) je récupère la liste des catégories en liens

    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
    <?php
    include_once("./conf.php") ;
    ?>
     
    <!--Début de la liste des galeries-->
    <?php
     
    //Création de la requête sql
    $sql= 'SELECT * FROM categorie';
     
    //Exécution de la requête sql
    $sth= $dbh->query($sql);
    $result= $sth->fetchALL();
     
     foreach($result as $row){
    $categorie = $row['categorie'];
     
    echo '<a href="voir_galerie.php?voir='.$row['categorie'].'">'.$categorie.'</a><br/>'; 
    }
    ?>
    <!--Fin de la liste des galeries-->
    2) Avec une autre page, je réceptionne les données avec GET

    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
    <?php
    include_once("./conf.php") ;
    ?>
    <?php
    if(isset($_GET['voir'])) // Si il y a une demande, lecture de la page
    {
    $categorie= $_GET['voir'];
    //Création de la requête sql
    $sql= 'SELECT * FROM images WHERE categorie ='.$categorie;
     
    //Exécution de la requête sql
    $sth= $dbh->query($sql);
    $result= $sth->fetchAll();
     
    //boucle sur l'ensemble des enregistrements
    $row=$result[0];
    $name = $row['name'];
    $categorie = $row['categorie'];
     
     
    echo'<img src="./medias/'.$name.'"/>';
     
    }
     
    ?>
    Nota : Les deux tables ont un champ identique nommé 'categorie'

    HELP PLEASE... bubu tétête, y'a t'il une bonne âme pour m'aider ?

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    déjà dans le script voir_galerie.php il faudrait que tu protège ta requête comme expliqué là :
    http://php.developpez.com/faq/index....l#mysql-escape

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut
    ok, mercu beaucoup, je vais m'en charger mais je pense que cela ne résout pas entièrement mon problème.


  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if(isset($_GET['voir']) && $_GET['voir']!='') // Si il y a une demande, lecture de la page
    {
    $categorie= mysql_real_escape_string($_GET['voir']);
    //Création de la requête sql
    $sql= "SELECT * FROM images WHERE categorie ='".$categorie."'";
    Ensuite, il faut faire une boucle pour afficher toutes les images de cette catégorie.

  5. #5
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql= "SELECT * FROM images WHERE categorie ='".$categorie."'";
    c'est ce qui est marqué dans le lien que j'ai mis

  6. #6
    Membre expérimenté

    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
    Par défaut
    Il utilise PDO, donc il existe une méthode plus adéquate que mysql_real_escape_string : quote (et je doute que les deux soient compatibles). Mais encore mieux, avec une requête préparée : pas d'échappement à faire soi-même et un mécanisme pour y passer des paramètres sans construction manuelle de la requête (concaténation).

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/12/2005, 21h21
  2. Réponses: 1
    Dernier message: 02/12/2005, 20h18
  3. Pagination des résultats d'une requête
    Par dl_jarod dans le forum ASP
    Réponses: 2
    Dernier message: 17/10/2005, 14h30
  4. Calcul à partir des résultats d'une requète
    Par Sendo dans le forum Access
    Réponses: 1
    Dernier message: 29/09/2005, 17h46
  5. Récupération des paramètres d'une requête
    Par TomPad dans le forum Access
    Réponses: 10
    Dernier message: 16/06/2005, 15h11

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