Bonjour,

Je suis le tuto panier de grafikart, mais voilà j'en suis au début à la récupération des données dans la base.
Je ne récupère aucune donnée ??

page db.class.php :

<?php

class DB{

        private $host = 'localhost';
        private $username = 'root';
        private $password = 'root';
        private $database = 'shop';
        private $db;

        public function __construct($host = null, $username = null, $password = null, $database = null){
            if ($host != null) {
                $this->host = $host;
                $this->username = $username;
                $this->password = $password;
                $this->database = $database;
            }
            try{
                $this->$db = new PDO('mysql:host='.$this->host.';dbname='.$this->database, $this->username, $this->password, array(
                    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8',
                    PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
                    ));
            }catch(PDOException $e){
                die('<h2>Connection impossible à la base de donnée !</h2>');
            }

        }

        public function query($sql){
            $req =$this->db->prepare($sql);
            $req->execute();
            return $req->fetchAll(PDO::FETCH_OBJ);
    }

}

?>

Et ma page index.php ou j'affiche les données :

<?php require 'header.php';  ?>

                <div class="row">
                <?php $products = $DB->query('SELECT * FROM products'); ?>
                <?PHP foreach ($products as $product): ?>
                    <div class="col-sm-4 col-lg-4 col-md-4">
                        <div class="thumbnail">
                            <img src="http://placehold.it/320x150" alt="">
                            <div class="caption">
                                <h4 class="pull-right"><?php echo $product->price; ?></h4>
                                <h4><a href="#"><?php echo $product->name; ?></a>
                                </h4>
                                <p><?php  echo $products->description; ?></p>
                            </div>
                            <div class="ratings">
                                <p class="pull-right">15 reviews</p>
                                <p>
                                    <span class="glyphicon glyphicon-star"></span>
                                    <span class="glyphicon glyphicon-star"></span>
                                    <span class="glyphicon glyphicon-star"></span>
                                    <span class="glyphicon glyphicon-star"></span>
                                    <span class="glyphicon glyphicon-star"></span>
                                </p>
                            </div>
                        </div>
                    </div>
            <?php endforeach; ?>
                </div>

<?php  require 'footer.php'; ?> 

Je ne comprends pas pourquoi ça bug ??

merci

1 réponse


Carouge10
Réponse acceptée

Bonjour,
Oui vous avez mis "$this->$db = " au lieu de "$this->db = "