2013-04-05 34 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; 
} 

$行返回作为数组,以便您可以根据需要处理它。

相关问题