0

我有以下 PHP,它需要获取文章 ID 列表并通过一个函数运行它以从数据库中获取它们。

到目前为止,我是 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;
    }

}

我将如何得到它,而不是指定 $item 让它几乎是动态的,以便我可以获得所有选定的文章并将它们放在不同的变量中..或者我必须将它们放在一个数组中?

非常感谢任何建议/答案。

4

3 回答 3

2

另一种方法,可能更高效,因为它只需要一个数据库查询(而不是每篇文章一个),将使用http://docs.joomla.org/JDatabase::loadObjectList

因此,您可以改为将您的文章 ID 数组作为 $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;
}

$rows 作为数组返回,因此您可以根据需要对其进行处理。

于 2013-04-05T19:03:11.120 回答
1

我也是PHP的初学者。请试试这个:

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

在你的课上

简单地

$id = $args;

我希望它会帮助你!

于 2013-04-05T09:23:11.943 回答
0

将文章存储到数组中,你可以试试这个:

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

var_dump($articleArray);
于 2013-04-05T09:33:30.007 回答