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 :

Afficher les images sur une page si le fichier existe ou pas [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Dépanneur informatique
    Inscrit en
    Septembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Dépanneur informatique

    Informations forums :
    Inscription : Septembre 2021
    Messages : 31
    Par défaut Afficher les images sur une page si le fichier existe ou pas
    Bonsoir, j'ai un message d'erreur sur la page =>
    ( ! ) Remarque : Index non défini : nom du fichier dans C:\wamp64\www\projet-images\contenu.php à la ligne 19 Call Stack #TimeMemoryFunctionLocation 10.0001361032{main}( )...\index.php : 0 20.0028411064require( ' C:\wamp64\www\projet-images\contenu.php )...\index.php : 8">
    class/imageManager.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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    class imageManager {
     
        private $db;
     
        public function __construct($db) {
     
            $this->setDb($db);
        }
     
        public function setDb(PDO $dbh) {
     
            return $this->db = $dbh;
        }
     
         public function getImagesData() {
     
            try {
     
                $sql = 'SELECT id, title, descr, filename FROM images';
     
                $stmnt = $this->db->prepare($sql);
     
                $stmnt->execute();
     
                while($row = $stmnt->fetch(PDO::FETCH_ASSOC)) {
     
                    $path = IMAGE_DIR_PATH . $row['filename'];
     
                    if(file_exists($path)) {
     
                        $image_data[$row['id']]['id'] = $row['id'];
                        $image_data[$row['title']]['title'] = $row['title'];
                        $image_data[$row['descr']]['descr'] = $row['descr'];
                        $image_data[$row['filename']]['filename'] = $row['filename'];
                        $image_data[$row['id']]['exist'] = 'OK';
                    }
                }
                    echo '<pre>';
                    print_r($image_data);
                    echo '</pre>';
     
                    return $image_data;
            }
            catch(PDOException $e) {
     
                echo 'Une erreur est survenue lors de la récupération des données dans la base. ' . $e->getMessage();
            }
        }
    contenu.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
     
    <?php
     
    $manager = new imageManager($db);
     
    $images = $manager->getImagesData();
     
    ?>
     
    <h1><?php echo WEB_TITLE ?></h1>
     
    <ul>
     
    <?php if(!empty($images)) : ?>
        <?php foreach($images as $image) : ?>
            <li>
                <p><img src="<?php echo $image['filename'] ?>"></p>
                <p><?php echo $image['title'] ?></p>
                <p><?php echo $image['descr'] ?></p>
            </li>
        <?php endforeach ?>
    <?php endif ?>
     
    </ul>
    Merci d'avance.

  2. #2
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    ce ne serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                        $image_data[$row['id']]['id'] = $row['id'];
                        $image_data[$row['id']]['title'] = $row['title'];
                        $image_data[$row['id']]['descr'] = $row['descr'];
                        $image_data[$row['id']]['filename'] = $row['filename'];
                        $image_data[$row['id']]['exist'] = 'OK';

  3. #3
    Membre averti
    Homme Profil pro
    Dépanneur informatique
    Inscrit en
    Septembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Dépanneur informatique

    Informations forums :
    Inscription : Septembre 2021
    Messages : 31
    Par défaut
    Un grand merci, ça fonctionne.

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

Discussions similaires

  1. [OL-2016] Rendre libre les images sur une page Outlook
    Par Neoptoleme dans le forum Outlook
    Réponses: 1
    Dernier message: 14/08/2019, 20h57
  2. Réponses: 6
    Dernier message: 14/06/2019, 13h23
  3. Réponses: 0
    Dernier message: 15/03/2019, 08h44
  4. Afficher les tables sur une page php
    Par Maxime50 dans le forum Langage
    Réponses: 15
    Dernier message: 08/09/2009, 16h01
  5. Réponses: 2
    Dernier message: 20/08/2007, 07h34

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