从不同的班级获取结果

时间:2015-06-25 14:29:48

标签: php mysql class pdo fetchall

让我解释一下我要做的事情。

在一个 DBcommand.php 文件中,我有:

class DBcommand Extends PdoDB { 
     public function selectAll() {
       $stmt = $this->dbh->prepare("SELECT hwid,username,pcname FROM users");
       $stmt->execute();
       $columnn = array();
       $result_returned = $stmt->fetchAll(PDO::FETCH_CLASS);
       foreach($result_returned as $key=>$result) {
         $columnn['hwid'] = $result->hwid;
         $columnn['username'] = $result->username;
         $columnn['pcname'] = $result->pcname;
         //return $columnn;
         //$columnn= new us($result->hwid,$result->username,$result->pcname);
       }
       return $columnn;
     }
}

我试图将我的结果放在另一个名为 View.php

的网页上
$cmd = new DBcommand();
//$get = $cmd->getInfo('1234');
$result=$cmd->selectAll();

echo '<tr ><td ><input type="checkbox" class="checkthis" /></td><td>' . $result['hwid'] . '</td><td style="cursor:pointer;" onclick="alert(\'ok\')">' . $result['username'] . '</td><td style="cursor:pointer;" onclick="alert(\'ok\')">' . $result['pcname']. '</td><td><p data-placement="top" data-toggle="tooltip" title="Edit"><button class="btn btn-primary btn-xs" data-title="Edit" data-toggle="modal" data-target="#edit" ><span class="glyphicon glyphicon-download-alt" onclick="myAjax()"></span></button></p></td>
  <td><p data-placement="top" data-toggle="tooltip" title="Delete"><button class="btn btn-danger btn-xs" data-title="Delete" data-toggle="modal" data-target="#delete" ><span class="glyphicon glyphicon-trash"></span></button></p></td>
</tr>';
                                        ?>

我遇到的问题是,我的selectall有效,但我的view.php只能从中获取1个信息,无论是第一个还是最后一个。

即使我尝试在view.php部分进行某种操作,也不会得到所有结果。

让我说我的selectAll返回数组(&#39; 123&#39;,&#39; azerty&#39;,azerty&#39;); 数组(&#39) ; 6547&#39;,&#39; qwertty&#39;,qwerty&#39;); ,来自selectAll的 print_r 会告诉我我想看到的内容,但我的结果来自view.php,只会向我显示这两个结果中的一个。

-

我甚至尝试创建另一个带$ this-&gt; _hwid的类,所以我稍后会使用这个类,但是没有管理,因为它的对象是字符串结果。

-

卡住了,谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

public function selectAll() {
    $stmt = $this->dbh->prepare("SELECT hwid,username,pcname FROM users");
    $stmt->execute();
    return $stmt->fetchAll();
}

这是您需要的问题功能的所有代码。

您的其他代码也需要很少了解您正在使用的技术。至少你必须意识到你以数组的形式从表中获取多行,这些行通常使用foreach()命令循环。

答案 1 :(得分:-1)

你的foreach总是只填充数组中的一个项目。

试试这个:

  A B C D
A 0 0 1 0
B 1 1 0 1
C 0 0 1 0
D 1 0 0 0