2013-07-07 71 views
-2

我有下面的类:PHP PDO显示返回的数组

<?php 

class photos_profile { 


    // Display UnApproved Profile Photos 
    public $unapprovedProfilePhotosArray = array(); 
    public function displayUnapprovedProfilePhotos() { 
    $users = new database('users'); 
    $sql='SELECT userid,profile_domainname,photo_name FROM login WHERE photo_verified=0 AND photo_name IS NOT NULL LIMIT 100;'; 
    $pds=$users->pdo->prepare($sql); $pds->execute(array()); $rows=$pds->fetchAll(); 

    $unapprovedProfilePhotosArray = $rows; 

    echo 'inside the class now....'; 


    foreach($rows as $row) { 
     echo $row['userid']; 
    } 
    } 
} 

我可以从foreach循环成功显示数据。

这是一个如下所示的类,希望能够在显示/视图代码中使用该数组。这就是为什么我添加了“$ unapprovedProfilePhotosArray = $ rows;”但它不起作用。

$photos_profile = new photos_profile; 
    $photos_profile->displayUnapprovedProfilePhotos(); 

     <?php 
     foreach($photos_profile->unapprovedProfilePhotosArray as $row) { 
      //print_r($photos_profile->unapprovedProfilePhotosArray); 
      echo $row['userid']; 
     } 
     ?> 

什么是我采取PHP PDO返回数组并在视图中使用它(从类对象返回)的最佳方式。我可以遍历所有的值并填充一个新的数组,但这似乎过分。

让我知道我是否应该更好地解释这一点。

thx

+2

请不要编辑您的帖子来完全删除内容。如果你已经解决了你的问题,你可以在这里发布答案给未来的访问者,或者删除你的问题。 – nickb

+0

为什么要循环遍历所有的值来创建一个新的数组,以便稍后再次循环?根本没有意义。 – itachi

回答

0

我想你错过了$ this->部分。所以基本上你是在方法名为unapprovedProfilePhotosArray的方法内部创建一个局部变量,当方法结束时它将消失。如果你想让该数组留在属性中,那么你应该使用$ this->,这是访问该属性的正确方法。

... 
$pds=$users->pdo->prepare($sql); $pds->execute(array()); $rows=$pds->fetchAll(); 

$this->unapprovedProfilePhotosArray = $rows; 

...