在“大酒瓶”表中,我有以下数据:
我想要的是将生产者显示为标题,然后在该标题下显示相应的行。 我想要的输出:
我对PHP和mysql还是很陌生,所以我不确定该怎么做,但这是我到目前为止所要做的:
型号:
class Magnum_model extends CI_Model {
public function get_magnum_wines() {
$query = $this->db->query('SELECT * FROM magnums');
return $query->result();
}
}
控制器:
public function index() {
$data['magnums']= $this->Magnum_model->get_magnum_wines();
$this->load->view('magnums.php',$data);
}
查看:
<h3>Domaine Vincent Rapet</h3>
<?php foreach($magnums as $magnum): ?>
<div id="magnum-img">
<div class="gallery">
<img src="/BurgundyDirect/gallery/<?php echo $magnum->Image; ?>">
</div><!-- gallery ends -->
<div class="desc">
<div id="wine-name">
<h5><?php echo $magnum->Name_of_wine; ?></h5>
</div>
<h6><a href="#"><?php echo $magnum->Producer; ?></a><h6>
<h4><?php echo $magnum->Magnum_price; ?></h4>
</div>
</div>
<?php endforeach; ?>
我不知道如何将其排序为所需的输出。任何帮助将不胜感激,并提前谢谢您:)
答案 0 :(得分:0)
如果需要显示产品组,则可以在控制器中获取生产商和相关产品的生产商列表。
select * from producers
)的方法。$producers = $this->Producer_model->get_producers();
示例代码:
$producerWithProducts = array();
foreach($producers as $producer) {
$producerId = $producer->Id;
$producerWithProducts[$producerId]['producerName'] = $producer->Name;
$producerWithProducts[$producerId]['products'] = $this->Magnum_model->get_magnum_wines_by_producer_id($producerId);
}
然后在模板中传递$producerWithProducts
并对其进行迭代。
答案 1 :(得分:0)
我有同样的事情,但是有葡萄酒的种类/颜色,所以这就是我所做的:
首先用2列创建一个名为Producers的新表:id和name。
在酒水表中,新建一个名为producer_id的列。
该列的值与生产者表中的ID对应。
然后您可以像这样遍历它:
function extractWines() {
$producers = mysqli_query("SELECT id FROM producers");
foreach($producers as $key => $value) {
$query = mysqli_query("SELECT * FROM wines WHERE producer_id = " . $value . "");
$rowname = mysqli_fetch_assoc($query);
$html = <<<HTML
<h1>{$rowname['producer']}</h1>
HTML;
echo $html;
while($row = mysqli_fetch_assoc($query)) {
$html = <<<HTML
(html code of the item with styling)
HTML;
echo $html;
}
}
}
这应该可以帮助您解决问题。