首页 > 解决方案 > 使用 codeigniter 从 db 获取数据并在视图中显示特定的数组索引

问题描述

我想从每个数据中以不同的样式查看视图中的数据。这就是为什么我在从数据库加载数据时需要一个数组索引。
我正在使用 CodeIgniter,但仍然出现未定义偏移量之类的错误。

我试图在我的模型中选择数据并按日期时间(时间戳)限制 5 个数据排序

模型 :

return $this->db->query("select * from artikel order by datetime ASC LIMIT 5");

控制器 :

$data['artikels']=$this->Home_model->getartikel();

看法 :

<?php foreach ($artikels->result_array() as $artikel) { ?>
<div class="style-one"><?php echo $artikel[0]['title'] ?></div>
<div class="style-two"><?php echo $artikel[1]['title'] ?></div>
<div class="style-three"><?php echo $artikel[2]['title'] ?></div>
<div class="style-four"><?php echo $artikel[3]['title'] ?></div>
<div class="style-five"><?php echo $artikel[4]['title'] ?></div>
<?php } ?>

我希望数据显示如下图:

在此处输入图像描述

标签: mysqlcodeigniter

解决方案


你有两个选择..

首先是更改您的样式style-#以仅匹配数组索引并像这样使用它:

<?php foreach ($artikels->result_array() as $key => $artikel) { ?>
    <div class="style-<?= $key ?>"><?= $artike['title'] ?></div>
<?php } ?>

或者在您的控制器中准备您的数组并使用您的 css 样式作为其键重新索引它。

// That's an array with numbers in words
$numbers = array("zero","one","two","three","four","five");

// That's exactly how result_array() returns your result
$articles = array(
    array('title' => 'Lorem ipsum dolor sit amet.'),
    array('title' => 'Consectetur adipisicing elit. Labore, officia?'),
    array('title' => 'Obcaecati cupiditate, eveniet ducimus est ea sed.'),
    array('title' => 'Iste assumenda, recusandae quasi.'),
    array('title' => 'Voluptas sapiente eos atque, debitis.'),
    array('title' => 'Quod, vel, ipsam.')
);

// That's an empty result array
$result = array();

// Processing in your controller
foreach ($articles as $key => $article)
{
    $result[$numbers[$key]] = $article['title'];
}

结果将是这样的:

Array
(
    [zero] => Lorem ipsum dolor sit amet.
    [one] => Consectetur adipisicing elit. Labore, officia?
    [two] => Obcaecati cupiditate, eveniet ducimus est ea sed.
    [three] => Iste assumenda, recusandae quasi.
    [four] => Voluptas sapiente eos atque, debitis.
    [five] => Quod, vel, ipsam.
)

现在在您看来,您可以这样做:

<?php foreach ($articles as $key => $title) { ?>
    <div class="style-<?= $key ?>"><?= $title ?></div>
<?php } ?>

推荐阅读