繁体   English   中英

在一个变量中使用Foreach循环生成多个查询结果

[英]Generating multiple query results using Foreach Loop in one variable

我正在使用codeigniter进行php项目,但由于最近两天没有找到任何解决方案,所以我一直在mysql查询上停留。 问题是我有02 Mysql表,我想通过使用url的变量来获取结果,但是我需要从第一个查询生成多个结果,并使用第一个查询结果在第二个查询中获取多个结果,这有点有点复杂,因为我找不到解决问题的更好方法,但这是第一个表:

Table  

+---------------+-------------+------+-----+---------+
| Field         | Type        | Null | Key | Default |
+---------------+-------------+------+-----+---------+
| nApplication  | int(11)     | NO   | MUL | NULL    |
| nProduct      | int(11)     | NO   |     | 1       |
+---------------+-------------+------+-----+---------+

我有多个 nApplication具有相同价值观nProduct (URL中的变量 ),我想从这个表中的所有行:

Table : tapplication

+---------------+---------------------+------+-----+---------+----------------+
| Field         | Type                | Null | Key | Default | Extra          |
+---------------+---------------------+------+-----+---------+----------------+
| nApplication  | int(11)             | NO   | PRI | NULL    | auto_increment |
| nStatus       | tinyint(3) unsigned | NO   | MUL | 1       |                |
| nManufacturer | int(11)             | NO   | MUL | 1       |                |
| nSerie        | int(11)             | NO   | MUL | 1       |                |
| sType         | varchar(48)         | NO   |     | #       |                |
| sDate1        | varchar(6)          | NO   |     | #       |                |
| sDate2        | varchar(6)          | NO   |     | #       |                |
| sEngine       | varchar(48)         | NO   |     | #       |                |
| sKiloWatt     | varchar(6)          | NO   |     | #       |                |
| sHorsePower   | varchar(6)          | NO   |     | #       |                |
+---------------+---------------------+------+-----+---------+----------------+

具有与先前查询相同的nApplication

我查询的票价(型号)

function getApplication($product_id){
      $this->db->from('tapplicationproduct')
               ->where('nProduct',$product_id);
               $query = $this->db->get();
               foreach ($query->result() as $row) {
                $ret['napp'] = $row['nApplication'];
               }
      return $ret;
    }

我不知道如何使用上述查询结果从tapplication表中获取Application结果

也许您正在寻找codeigniter表联接? 如果是这样,这将对您有所帮助: Codeigniter表联接

您的问题似乎导致您要存储和返回的内容:

           foreach ($query->result() as $row) {
            $ret['napp'] = $row['nApplication'];
           }

这将导致数组具有单个键napp和返回值中最后一行nApplication的单个值。

您想要的可能是用行构建数据数组?

           foreach ($query->result() as $row) {
            $ret[] = $row;
           }

还是使用nApplication值作为键?

           foreach ($query->result() as $row) {
            $ret[$row['nApplication']] = $row;
           }

现在看起来您也想从nApplication表中获取数据。 如果将查询更改为此,您将在1个查询中包含所有信息:

function getApplication($product_id){
  $this->db->from('tapplicationproduct')
           ->join('nApplication','nApplication.nApplication = tapplicationproduct.nApplication')
           ->where('nProduct',$product_id);
           $query = $this->db->get();
           foreach ($query->result() as $row) {
            $ret[] = $row;
           }
  return $ret;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM