1

MYSQL からデータを取得し、GROUP_CONCAT と AS を使用しています。

<ul class="retailers-list">
<?  
$query = "SELECT id, country, group_concat(DISTINCT city SEPARATOR '<br>') AS city, country FROM retailers GROUP BY country";
$stmt = $db->query($query);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
?>
<li>
<a href="search.php?country=<?= $row['country']; ?>"><?= $row['country']; ?></a>
<br>
<a href="search.php?city=<?= $row['city']; ?>">
<?= $row['city']; ?></a> //group_concat / AS
</li>   
<?  endwhile ?>     
</ul>

問題は、出力が 1 つのリンクであることです。すべての市の値が $row['city']; にグループ化されているようです。各都市に独自のリンクを持たせるにはどうすればよいですか? group_concat と AS を使用し、各都市に独自の一意の URL を与える必要があります。

関連記事:リスティングの問題、GROUP mysql

4

2 に答える 2

1

これが私の解決策でした!解決しました!

<ul class="retailers-list">
<?  
$query = "SELECT id, country, group_concat(DISTINCT city) AS city, country FROM retailers GROUP BY country";
$stmt = $db->query($query);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) :
?>
<li>
<a data-pjax="content" data-toggle="collapse" data-target="#<?= $row['id']; ?>" href="retailers.php?country=<?= $row['country']; ?>">
<?= $row['country']; ?></a>


<div id ="<?= $row['id']; ?>" class="collapse in">
<?php 
  $cities = explode(',',$row['city']);
  foreach ($cities as $city) {
?>
    <a data-pjax="content" href="retailers.php?city=<?= $city ?>"><?= $city; ?></a><BR>
<?php
  }
?>
</div>
</li> 
<?  endwhile ?> 
于 2013-10-28T15:09:37.797 に答える