2013-02-25 236 views
0

我有一個問題,我只是無法弄清楚問題是什麼,顯然有一些我忽略了。請參閱以下代碼。從PDO數據庫獲取數據

<?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; 
    } 


} 

當我打印$數據我看到輸出。但問題是,當我想輸出用戶的ID。然後我得到了以下錯誤:注意:未定義指數:ID

在我的控制,我下面的代碼:

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

我想有這個

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

而且我知道,在您看來,這並不是最好的使用PHP的意圖,但我正在使用我公司製作的MVC框架,所以它是有點廢話。預先感謝。

+0

請提供打印的$數據; – Dino 2013-02-25 10:51:31

+0

@DinoBabu這是我的$數據輸出。 [0] =>數組 ( [ID] => 1 [如first_name] =>納維德哈尼 [綴] => [姓氏] => Mirzaie米蘭尼 [PHONE_NUMBER] => 06-42743326 [電子郵件] => [email protected] [口令] => ) [1] =>數組 ( [ID] => 2 [如first_name] =>吉爾特 [綴] =>德 [last_name] => Haan [phone_number] => 015-1234567 [email] => [email protected] .nl [password] => ) ) – Navid 2013-02-25 10:55:13

+0

@Navid正如你在輸出中看到的那樣,沒有'$ data ['id']'。 '$ data'是一個行數組,每個都有一個'id'字段。請閱讀@ Dino-babu – 2013-02-25 11:07:54

回答

0

這是多維數組,因爲$this->dbCon->fetchAll(PDO::FETCH_ASSOC);將返回所有行

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

+0

的答案哦,該死的非常非常愚蠢......非常感謝你,唯一的問題是現在我看不到任何東西。而當我在模型中輸出數據時,我會返回輸出。 – Navid 2013-02-25 11:08:34

1

只得到第一個ID

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

所有

foreach($data as $d) { 
echo $d['id'] 
} 
+0

我明白,$ data [0] ['id']只是我整個數據數組的一個字段。但是當我想在我看來循環它們時,它不會輸出任何東西。控制器: $ c = new CompanyContact(); $ oTemplate-> assign(「aContacts」,$ c); 查看: <?php foreach($ this-> var ['aContacts'] as $ oContacts){ echo $ oContacts-> getFirstName(); } ?> – Navid 2013-02-25 11:16:48

+0

@Navid你不設置你的名字在任何地方,它是空的。 – iiro 2013-02-25 13:12:20