2013-04-05 31 views
0

我有以下的PHP,需要採取文章ID的列表,並通過函數運行它從數據庫中獲取它們。PHP列表到一個數組到一個foreach Joomla模塊

我非常的PHP初學者所以到目前爲止,我有:

list($slide1, $slide2, $slide3, $slide4, $slide5) = explode(" ", $params->get('id')); 

$a = array(
    $item => $slide1, 
    "two" => $slide2, 
// "three" => $slide3, 
// "four" => $slide4, 
// "five" => $slide5 
); 

foreach ($a as $k) { 
    $args['id'] = $k; 
    $item = ModArticleSlider::getArticles($args); 
} 

和類:

class ModArticleSlider { 

    public function getArticles($args){ 
     $db = &JFactory::getDBO(); 
     $item = ""; 

     $id = $args['id']; 
     if($id > 0){ 

      $query = "select * "; 
      $query .= "FROM #__content WHERE id =".$id." AND state=1 " ; 

      //echo $query; 
      $db->setQuery($query); 
      $item = $db->loadObject(); 
     } 

     return $item; 
    } 

} 

我怎麼會得到它,這樣,而不是指定$項目有它的幾乎是動態的,這樣我就可以獲得所有選定的文章,並將它們放在不同的變量中。或者我必須將它們放入數組中?

任何建議/回答非常感謝。

回答

2

我也是PHP的初學者。 請試試這個:

foreach ($a as $k => $val) { 
    $args = $val; 
    $item[] = ModArticleSlider::getArticles($args); 
    var_dump($item); 
} 

在類

簡單

$id = $args; 

我希望它會幫助你的!

+0

完美謝謝.. – 2013-04-05 09:40:30

1

商店物品到一個數組,你可以試試這個:

$slides = explode(" ", $params->get('id')); 
$articleArray = array(); 
foreach($slides as $slide) { 
    $articleArray[] = ModArticleSlider::getArticles($slide); 
} 

var_dump($articleArray); 
2

另一種方法,可能更高性能,因爲僅需要一個數據庫查詢(而不是一個爲每篇文章),是使用http://docs.joomla.org/JDatabase::loadObjectList

所以,你可以代替IDS通過您的文章數組作爲$ IDS到類,如:

public function getArticles($ids){ 

    if ($ids) { 
     $db = JFactory::getDbo(); 
     $query = "SELECT * FROM #__content WHERE id IN (" . implode(',', $id) . ") AND state=1 " ; 
     $db->setQuery($query); 
     $rows = $db->loadObjectList(); 

     return $rows; 
    } 

    return FALSE; 
} 

$行返回作爲數組,以便您可以根據需要處理它。

相關問題