gpt4 book ai didi

PHP MySQL 加入并输出为数组

转载 作者:行者123 更新时间:2023-11-29 03:42:44 25 4
gpt4 key购买 nike

我想知道是否有人可以帮助我。

我有以下两个表,位置和多边形。

positions:
----------------------------------------------
| positionID | name | information
----------------------------------------------
| 1 | Southampton | text here
| 2 | London | text here

.

polygons:
-------------------------------------------------------------------
| polygonID | positionID | lat | lon
-------------------------------------------------------------------
| 1 | 1 | 434343.034343 | -43.4343434
| 2 | 1 | 343343.034343 | -43.4343434
| 3 | 1 | 434343.034343 | -54.4343434

我想连接两个表并将它们输出为以下格式的数组。

$positions = array(
array( positionID => 1,
name => 'Southampton',
information => 'text here',
polys => array( array( Lat => 54.54299483853406,
Lng => -6.5224456787109375,
),
array( Lat => 54.648809788121866,
Lng => -6.405029296875,
),
array( Lat => 54.54020652089137,
Lng => -6.39129638671875,
),
),
),
);

我已经编写了以下连接语句,但我真的坚持下一步。

SELECT * FROM (`positions`) LEFT JOIN `polygons` ON `positions`.`positionID` = `positions`.`positions`

来自连接的纬度/经度数据必须存储在数组中的“polys”键上。

如有任何帮助或建议,我们将不胜感激。

感谢一百万

最佳答案

如果每个 positionID 有多个 polygonID,您将获取很多位置副本。我建议改为执行 2 个查询:

$positions = array();

$query_1 = "SELECT * FROM positions";
$query_2 = "SELECT * FROM polygons";

$resource_1 = mysql_query($query_1);

while($position = mysql_fetch_assoc($resource_1))
{
$positions[$position['positionID']] = $position;
$positions[$position['positionID']]['polys'] = array();
}

$resource_2 = mysql_query($query_2);

while($polygon = mysql_fetch_assoc($resource_2))
{
$positions[$polygon['positionID']]['polys'][$polygon['polygonID']]['Lat'] = $polygon['lat'];
$positions[$polygon['positionID']]['polys'][$polygon['polygonID']]['Lon'] = $polygon['lon'];
}

(很抱歉在我的示例中使用了已弃用的函数,如 mysql_query)

关于PHP MySQL 加入并输出为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361543/

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