gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:37:16 25 4
gpt4 key购买 nike

我正在使用 codeigniter 开发一个 php 项目,但自从过去 2 天以来我一直在使用 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 表中获取应用程序结果

最佳答案

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

           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;
}

关于php - 在一个变量中使用 Foreach 循环生成多个查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com