2014-07-27 133 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