2017-09-21 4 views
0

私は実際にPHPでクラスと次のようなDAOクラスをコードしています。 dbDAOの内容はデータベースのPDO接続のみです。データベースに含まれるすべての製品をインデックスページに表示したい。データベースからすべての製品を表示する最善の方法は、DAOクラスにあるのか、オブジェクト製品を使用するのですか? DAOクラスは自分のデータベース内のコンテンツのみを変更するためのクラスですか?クラスとDAOを使用したデータベースのデータを表示

ここに私のコードです:

DAOクラス:

class ProduitDao extends dbDAO 
{ 
    public function displayProduits() 
    { 
     $product = $this->bdd->prepare("SELECT * FROM products"); 
     $product->execute(); 

     while ($displayProduct = $product->fetch()) 
     { 
     ?> 
     <div class="prodname"> 
      <?php 
      echo '<a href="./product.php?id='.$displayProduct['no'].'"</a>'; 
      echo '<img src="images/produits/'.$displayProduct['image'].'" alt=" '.$affichageProduit['nom'].' "</img>'; 
      ?> 
     </div> 
     <?php 
     } 
    } 

Productクラス:

public function __construct($no, $img) 
    { 
     $this->no = $numero; 
     $this->img = $img; 
    } 

// GET and SET goes here 

Tancks!

答えて

0

HTML(プレゼンテーションロジック)とビジネスロジックを組み合わせたことは決してありません。あなたがしたいかもしれないもの

は次のとおりです。

は、データを定義するあなたのエンティティ(プレーンPHPオブジェクト)を定義します。

class ProductEntity { 
    protected id; 
    protected name; 
    //then define your setters and getters 
} 

次に、あなただけの定義されたエンティティを返すようにDAOを持っています。

class ProductDao { 
    public function getProducts() { 
     $products = []; 
     $product = $this->bdd->prepare("SELECT * FROM products"); 
     $product->execute(); 

     while ($displayProduct = $product->fetch()) { 
      $p = new Product(); 
      $p->setId($displayProduct['id']); 
      $p->setName($displayProduct['name']); 
      $products[] = $p; 
     } 
     return products; 
    } 
} 

これで、DAOに電話して、製品のコレクションを返すことができます。

そしてあなたはVIEW層にこのコレクションを渡したい、とあなたはHTML(プレゼンテーション・ロジック)を追加することができますこれはどこで

foreach ($products as $product) { 
    echo '<div>' . $product->getId() . '</div>'; 
} 
+1

私は今参照してください!タンクスの助けを借りて! :) – SurveyVisual

関連する問題