2010-09-09 4 views
1

Je travaille sur la création d'un blog dans oop php. Maintenant Im essayant d'afficher les entrées de poste dans mon DB. Je parviens à sortir des données du champ créé mais rien d'autre. Fondamentalement, j'ai quatre champs dans la table de la poste dans mon DB. J'ai créé, auteur, titre et corps. Avec ce code ci-dessous, je réussis seulement à afficher créé. Quelqu'un at-il compris comment je devrais procéder ?! Ai-je besoin de créer un nouvel objet blog pour chaque domaine ?! Cela semble tellement bizarre si c'est le cas. Merci! BTW est le code de mon index.php ...bonne façon d'afficher les données DB la façon OOP php?

<?php 
require_once('_settings.config.php'); 
      global $db; 
      $blog = new Blog("My Blog"); 
      $posts = $blog->getPosts(); ?> 

       <?php foreach ($posts as $post): ?> 
       <li> 
       <?php echo "<div>"; ?> 
        <?php echo "<span class='footer'>Posted by: " . $post->author . "Created: " . $post->created . "</span>"; ?> 
        <?php echo "</div>"; ?> 
       <?php endforeach; ?> 

Ici comme est ma fonction getPosts. Il retourne le tableau $ posts.

public function getPosts() { 
     $result = $this->db->query("SELECT * FROM posts"); 
     $posts = array(); 
     while($post = $result->fetch_assoc()) { 
      array_push($posts, new BlogPost($post['id'], $post['created'], $post['author'], $post['title'], $post['body']));  
     }  
     return $posts;   
    }                                  
+0

Si votre fonction 'get_posts()' renvoie un objet, cela fonctionnera. Pouvez-vous nous fournir le code pour cette fonction? – 2ndkauboy

+0

suivez ceci cela vous aiderait http://code.tutsplus.com/tutorials/real-world-oop-with-php-and-mysql--net 1918 – nifCody

Répondre

0

Votre classe de courrier dispose-t-elle de fonctions supplémentaires? IMO, si c'est le cas, il est logique de construire un nouvel objet post, de sorte que vous pouvez appeler $post->do_something() plus tard dans le code. D'autre part, si votre classe de publication n'est qu'un conteneur pour les informations que vous avez extraites de la base de données, je créerais simplement une variable d'instance $posts dans votre classe de blog contenant un tableau de hachages de tous les champs. Seule différence réelle il y a que vous auriez $post['author'] au lieu de $post->author Vous pouvez également définir une fonction display_all_posts() ou display_posts(some_range) pour votre objet de blog pour rendre votre code plus agréable.

+0

Dans mon blog BlogPost classe j'ai le constructeur et getters et setters pour les champs de la base de données. Ensuite, dans ma blogclasse, j'ai la fonction getPosts qui fait la requête et crée l'objet BlogPost qui contient les champs dans la base de données. C'est aussi loin que je suis venu jusqu'à maintenant. – Tim

Questions connexes