2014-07-27 176 views
-2

創建我是新來的PHP OOP所有的對象,我嘗試使用OOP來選擇,我有一個返回循環

class page { 
    var $title; 

    function settitle($title){ $this->title = $title;} 
} 

現在

class model { 

    connection $done ; 


    function getAllPages(){ 
     $query3 = "select * from pages"; 
     $result3 = mysqli_query($this->con,$query3); 
     while ($rows=mysqli_fetch_array($result3)){ 
      $page = new Page; 
      $page->setP_title($rows['p_title']); 
     } 
     return $page; 
    } 
} 

現在

class controller{ 
    function indexAllPage(){ 
     $pages = $this->conn->getAllPages(); 
     include('allpages.php'); 
    } 
} 

現在

查看 全部pages.php

+0

請正確格式化的問題。我知道你是一個新用戶,但它不應該那麼辛苦。 SO有非常棒的格式化工具。 – raidenace

+0

你試過運行indexAllPage嗎?你有錯誤:$ page-> setP_title($ rows ['p_title']); –

+0

如果你要實現你自己的mvc,在你的視圖類中創建一個輸出方法,並在模型中改變你的get方法來接受參數,並基於它返回一個正確的結果(如在bitWorking的答案中提到的),然後調用輸出它關心的東西 – madz

回答

1

,如果你想返回多個頁面,您需要一個數組:

$pages = array(); 
while ($rows=mysqli_fetch_array($result3)){ 
    $page = new Page; 
    $page->settitle($rows['p_title']); 
    $pages[] = $page; 
} 
return $pages; 

UPDATE:

$pages = $this->conn->getAllPages(); 

// $pages is now an array, so you have to loop through it or get a specific index 

// get first page from array 
$page = $pages[0]; 

// loop through it 
foreach ($pages as $page) { 
    $title = $page->getTitle(); 
} 
+0

嗨,抱歉關於把代碼格式錯誤。接下來我會小心翼翼。但實際上我已經嘗試做同樣的事情,你所提到的,但問題是頁面[]是一個數組和$頁面是一個對象,所以它給我致命錯誤不能使用對象作爲數組。 – Muhabutti

+0

這是一個不同的問題。這裏提供的答案回答了這個問題。 – robbmj

+0

看到我的更新如何從數組中讀取頁面 – bitWorking