【问题标题】:Retrieve certain row from array depending on a value根据值从数组中检索特定行
【发布时间】:2023-04-06 16:34:01
【问题描述】:

从 mysql 数据库编译的数组中回显出正确的行。

我已从包含三个字段的数据库(位置)中提取信息:id、name、city 到一个名为 $array 的数组中。我想遍历另一个数据库(事件),其中来自第一个数据库(位置)的 id 存储在一个字段中。循环时,我想从位置数据库中显示相应的名称和城市。 这是否可能无需在每个循环中都获取信息?

这是我的第一次尝试

$query = "Select id, name, city FROM locations WHERE typ = '1'";
$result = mysqli_query($conn, $query);
$row = array();
while ($row = mysqli_fetch_assoc($result)) {
$array[] = $row;
}

然后我想我可以像这样自己指定密钥:

$query = "Select id, name, city FROM locations WHERE typ = '1'";
$result = mysqli_query($conn, $query);
$row = array();
while ($row = mysqli_fetch_assoc($result)) {

$array[$row['id']] = $row;
}

但我不知道如何回显正确的行。

【问题讨论】:

  • 当您说“数据库”时,您实际上是指表吗?
  • 是的,很抱歉。

标签: php arrays mysqli


【解决方案1】:

您可以在一个查询中连接两个表,使用如下方式:

Select locations.id, locations.name, locations.city, events.name
FROM locations 
JOIN events ON locations.id = events.id
WHERE locations.typ = '1'

JOIN 语句中的events.id 假设这是events 表中id 的列名。我还假设这是两个表之间将匹配的两个字段。如果您的匹配条件不同,请相应调整。

SELECT 语句已修改为从两个表中提取列。添加与您的需求相关的任何字段。

【讨论】:

  • 工作就像一个魅力,谢谢你让我在我的小盒子外面思考我已经设法把自己困在里面!
猜你喜欢
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 2017-10-15
  • 2021-08-03
  • 1970-01-01
相关资源
最近更新 更多