如何在codeigniter中使用php以基于列类别的行显示mysql数据

oxiaedzo  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(376)

在我的“magnums”表中,我有以下数据:

我想要的是将producer显示为标题,然后在标题下显示相应的行。我想要的输出:

我对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; ?>

以上代码的输出:

我不知道如何把它分类到我想要的输出。如有任何帮助,我们将不胜感激并提前感谢:)

pkbketx9

pkbketx91#

如果需要显示产品组,可以在controller中获得生产者和相关产品的生产者列表。
在producers模型中,创建一个方法,用于获取所有producer( 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 并对其进行迭代。

i2byvkas

i2byvkas2#

我也有同样的想法,但葡萄酒的种类/颜色是这样的:
首先创建一个名为producers的新表,它有两列:id和name。
在wine表中创建一个名为producer\u id的新列。
此列的值与producers表中的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;

        }  
    }
}

这会帮助你解决你的问题。

相关问题