如何修复PHP嵌套循环我在尝试创建嵌套循环时遇到了一些问题?
我期待着:如何修复PHP嵌套循环我在尝试创建嵌套循环时遇到了一些问题?,php,mysql,loops,while-loop,nested,Php,Mysql,Loops,While Loop,Nested,我期待着: *usa london california sanfransisco *saudiarabia makkah madina jeddah 但我得到的第一个国家是: *usa london california sanfransisco 我的数据库如下所示: country city --------- ------------ usa
*usa
london
california
sanfransisco
*saudiarabia
makkah
madina
jeddah
但我得到的第一个国家是:
*usa
london
california
sanfransisco
我的数据库如下所示:
country city
--------- ------------
usa london
usa california
usa sanfransisco
saudiarabia makkah
saudiarabia madina
saudiarabia jeddah
我使用的代码:
require('db_conn_setup.php');
$sql= "SELECT * FROM places";
$result = $conn->query($sql);
if ($result->num_rows > 0){
while($row = $result->fetch_assoc()) {
echo '<ul>
<li>'.$row["country"].
'<ul>';
if ($result->num_rows > 0)
while($row = $result->fetch_assoc()) {
echo '<li>'.$row["city"].'</li>';}
'</ul>
</li>
</ul>';
} else {
echo "0 results";
}
$conn->close();
require('db_conn_setup.php');
$sql=“从位置选择*”;
$result=$conn->query($sql);
如果($result->num_rows>0){
而($row=$result->fetch_assoc()){
回声'
- “.$行[“国家”]。
“
”;
如果($result->num_rows>0)
而($row=$result->fetch_assoc()){
回显“- ”.$row[“城市]。
”;}
“
';
}否则{
回显“0结果”;
}
$conn->close();
解决问题的方法是停止使用mysqli,开始使用PDO
但是,如果您想使用mysqli做同样的事情(这更困难),您需要首先准备数据,然后在多维数组上相应地循环
$sql= "SELECT * FROM places";
$result = $conn->query($sql);
$data = [];
foreach($result as $row) {
$data[$row['country']][] = $row['city'];
}
然后,在表示逻辑中,您可以在该数组上循环,如下所示:
if($data) {
echo '<ul>';
foreach($data as $country => $cities) {
echo '<li>'.$country;
echo '<ul>';
foreach($cities as $city) {
echo '<li>'.$city;
}
echo '</ul>';
}
echo '</ul>';
} else {
echo "0 results";
}
我希望美国紧随其后的是所有城市,而不是第一个:伦敦。
$data = $pdo->query("SELECT * FROM places")
->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_COLUMN);