2015-11-02 108 views
0

我想在循環內創建一個類的對象,但我無法弄清楚我在做什麼錯誤。 這是我的選擇功能。在for循環中創建一個對象

public function admin_select_all ($table, $rows = '*', $where = null, $order = null) 
{ 
    if(empty($table)) 
    { 
    return false; 
    } 

    $q = 'SELECT '.$rows.' FROM '.$table; 
    if($where != null) 
     $q .= ' WHERE '.$where; 
    if($order != null) 
     $q .= ' ORDER BY '.$order; 

    if($this->admin_tableExists($table)) 
    { 
    $stmt = $this->admin_connection->prepare($q); 
    $stmt->execute(); 
    $results = $stmt->fetchAll(); 
    if((!$results) or (empty($results))) { 
     return false; 
    } 
    return $results; 
    } 


} 

這是類admin_element的構造

public function __construct($itemId) 
{ 
    global $db_operate; 
    $info = $db_operate->admin_select_all ("my_table" ,"id=".$itemId); 
    $this->id = $info[0]['id']; 
    $this->title = $info[0]['title']; 
    $this->seoUrl = $info[0]['seo_url']; 
    $this->parentId = $info[0]['parent_id']; 
    $this->isMenuItem = $info[0]['menu_item']; 
    $this->order = $info[0]['menu_order']; 
    $this->htmlId = $info[0]['anchor_unique_html_id']; 
} 

//這裏面admin_element的功能,我想,當我創建爲循環

public static function getRootItems() 
{ 
    global $db_operate; 

    $parents = $db_operate->admin_select_all ("my_table"); 
    $listOfItems = array(); 
    for($i=0;$i<count($parents);$i++) 
    { 
     $listOfItems[$i] = new admin_element($parents[$i]['id']); 
    } 
    //var_dump($listOfItems); 
    return $listOfItems; 
    } 
} 

內創建一個對象現在一個對象與此然後我在構造函數中獲取錯誤未定義的ID,當我var_dump數組,然後我得到的錯誤等於總長度$父,這是我返回的數組。我不知道我在做什麼錯。我也嘗試與foreach,但仍然沒有成功。

//用foreach我嘗試,但不能創建和對象

foreach($parents as $row) { 
     $listOfItems[] = array(

     'id' => $row['id'] 


     ); 

    } 

這裏的時候,我的var_dump的$ LISTOFITEMS數組,那麼它的工作很好,但是當我嘗試實例化對象那麼它也失敗,請一些幫助。如果在我道歉之前詢問這個問題。

+0

'$ Q = 'WHERE' $哪裏;'難道你不知道[小誘殺刪除表( https://xkcd.com/327/)? – 2015-11-02 20:51:33

+0

我知道檢查函數參數的$ where是從那裏來的 –

+0

你在'$ info = $ db-> select(「my_table」,id =「。$」)中有'id =「。$ itemId'的語法錯誤itemId);' – Sean

回答

2

嘗試更換此:

$listOfItems = array(); 
for($i=0;$i<count($parents);$i++) 
{ 
    $listOfItems[$i] = new itrom_element($parents[$i]['id']); 
} 

有了這個:。

foreach($parents as $parent) 
    $listOfItems[]= new itrom_element($parent['id']); 
+1

他沒有提及,有一個語法錯誤,所以它propably編輯問題 – Daimos

+0

沒有這不是問題,而粘貼我的問題,我在這裏改變一些表名等,所以雙引號刪除錯誤。沒關係,我已經編輯它,你可以現在檢查它 –

+0

主要問題是我如何創建一個對象的類內部for或foreach循環,我正在做的是它worng或irihgt..some建議 –