0

私は問題を抱えていて、問題が何であるかを理解することができません。明らかに私が見落としていることがあります。次のコードを参照してください。

<?php
class CompanyContact
{

    //fields;
    private $iID;
    private $sFirstName;
    private $sInfix;
    private $sLastName;
    private $sPhoneNumber;
    private $sEmail;

    private $dbCon;

    public function __construct(){


        $sQuery = "SELECT * FROM company_contact";
        $this->dbCon = Registry::get('oDb')->prepare($sQuery);
        $this->dbCon->execute();


        $data = $this->dbCon->fetchAll(PDO::FETCH_ASSOC);

        echo "<pre>";
        print_r($data);
        echo "</pre>";

        $this->iID = $data['id'];

    }

    public function getFirstName(){
        return $this->sFirstName;
    }


}

$ dataを印刷すると、出力が表示されます。しかし、問題は、ユーザーのIDを出力したい場合です。次に、次のエラーが発生します。注意:未定義のインデックス:id

私のコントローラーには、次のコードがあります。

<?php 
$c = new CompanyContact();
$oTemplate->assign("contacts",$c);
?>

私の見解では、これが欲しい

<?php
  foreach($this->var['contacts'] as $contacts){
  echo $contacts->getFirstName();
}
?>

そして、それがあなたの見解でPHPを使用するのが最善の意図ではないことは知っていますが、私は自分の会社が自分たちで作成したMVCフレームワークを使用しているので、ちょっとくだらないです。少し早いですがお礼を。

4

2 に答える 2

1

最初のIDのみを取得する

$this->iID = $data[0]['id'];

すべてのために

foreach($data as $d) {
 echo $d['id']
}
于 2013-02-25T10:57:36.023 に答える
0

すべての行$this->dbCon->fetchAll(PDO::FETCH_ASSOC);を返すため、多次元配列です。

$this->iID = $data[0]['id'];

于 2013-02-25T10:55:41.183 に答える