2010-08-28 9 views
1

J'ai deux classes (Base de données pour requêtes sur base de données) et News pour manipuler des articles. Sur index.php (peut être n'importe quelle autre page) j'appelle la classe News, qui appelle la classe Database. Tout va bien, jusqu'à ce que je dois afficher le résultat sur index.php. Disons que je sauvegarde le résultat dans $ news dans News class. Comment dois-je récupérer ce tableau dans index.php (comme return $ this-> news ou autre chose ??). Et comment afficher?Multidimensional array retriving (OOP)

Quelqu'un pourrait-il m'aider?

+0

un peu de code, sinon il est très difficile d'être d'aucune utilité pour vous –

Répondre

1

On index.php (could be any other page) i call News class, which calls Database class.

Vous n'appelez pas "classes". Vous appelez des méthodes de classes.

Let's say, i save result in $news in News class.

Je suppose que vous voulez dire que vous avez un nom champ (également propriété en PHP) news, comme dans:

class News { 
    private $news; 
    /* ... */ 
} 

How should i retrieve that array in index.php (like return $this->news or something else??)

Vous pouvez ajouter une méthode dans News qui a renvoyé ce tableau:

class News { 
    private $news; 
    function retrieveNews() { 
     /* query the DB and store the result in $this->news */ 
    } 
    function getData() { return $this->news; } 
} 

Ou vous pouvez le rendre public et y accéder directement via $newsObject->news (non recommandé).

And how to display?

Cela dépend de la structure des données et de la manière dont vous souhaitez les afficher.

+0

applaudissements: D je ne pourrais rien faire avec cette question: D –

+1

merci pour la réponse, d'abord, désolé pour la mauvaise terminologie, je ne suis pas natif Anglais, donc les mots ne viennent pas facile :) Mon problème est en fait comment afficher ce contenu (données renvoyées), juste où vous avez arrêté dans votre réponse. En supposant que la requête de base de données était: "sélectionnez news_id, title, body, date où author_id = 'aide'"; J'enregistre le résultat dans $ this-> news et retourne à index.php Et maintenant j'ai essayé d'utiliser foreach loop, et quelques autres fonctions mais sans succès. Un de mes essais: pour ($ i = 0; $ i <10; $ i ++) { foreach ($ nouvelles [$ i] as $ a => $ b) { echo $ b; } } La structure de l'affichage est elle-même un autre problème. – phpEnthusiast

+0

@php Encore une fois, cela dépend de la structure des données. Faites un 'var_dump ($ news)' pour le voir. – Artefacto

1
class Database{    // database.php 
function news($user_id){ 
$q="select all from news where author id='$id'"; 
$result=$db->query($q); 
for($i=0; $i<$r->num_rows; $i++){ 
    $arr[]=$result->fetch_array; 
} 
return $arr; }} 

class News{    // news.php 
function get_news($user_id){ 
$news=$db->news($user_id); 
return $news; 
}} 

index.php // problem how to display 
$post=new News; 
$post->get_news($user_id); 
for($i=0; $i<5; $i++){ 
    foreach($post[$i] as $k=>$v){ 
     echo $v;   //get error: "Cannot use object of type News as array in ..." 
}}