我有这个MySQL表,其中有四列:location_id,location_name,地址,城市
我需要制作两个下拉列表,其中第一个下拉列表是城市名称。因此,如果有 10 个同名城市,则下拉列表应该只有 1 个城市。选择该城市后,相应的位置名称应进入下一个下拉列表 - 位置名称。选择位置名称下拉列表后,将显示其相应的地址。
我的逻辑之一是:从数据库中选择所有不同的城市。对于另一个查询,选择所有信息。
查询: SELECT distinct(city) from locations;
这将给我所有不同的城市名称。
SELECT * from locations;
所有必需的数据
创建一个数组,其中 key 将是城市名称,位置详细信息为数组。像这样的东西
Array
(
[0] => stdClass Object
(
[location_id] => 27
[location_name] => ANSND
[address] => some street 1
[city] => NYC
)
[1] => stdClass Object
(
[location_id] => 809
[location_name] => ANBC
[address] => some street 1
[city] => NYC
)
[2] => stdClass Object
(
[location_id] => 810
[location_name] => dasddsdss
[address] => some street 1
[city] => Calif
)
[3] => stdClass Object
(
[location_id] => 811
[location_name] => testing 6 feb
[address] => some street 1
[city] => Calif
)
)
如何在 PHP 中执行此操作?
Array
(
[NYC] => Array
(
[0] => stdClass Object
(
[location_id] => 27
[location_name] => ANSND
[city] => NYC
[address] => some street 1
)
[1] => stdClass Object
(
[location_id] => 809
[location_name] => ANBC
[city] => NYC
[address] => fsff
)
)
[Calif] => Array
(
[0] => stdClass Object
(
[location_id] => 810
[location_name] => dasddsdss
[city] => Calif
[address] => some street 1
)
[1] => stdClass Object
(
[location_id] => 811
[location_name] => testing 6 feb
[city] => Calif
[address] => some street 1
)
)
)
<?php
$results = array(); // it will be your resulted array
$data_locations = array(); // lets say it is your data list of location table
foreach( $data_locations as $location )
{
$results[$location->city][] = array(
'location_name' =>$location->location_name;
'address' =>$location->address;
)
}
echo "<pre>"; print_r( $results ); die;
?>