[英]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.