Я пытался составить список групп штатов с указанием их городов и количества мест в каждом городе.Вроде как ниже.
Texas
Austin (5)
Dallas (8)
Houston (3)
У меня есть все, кроме подсчета по городу и отображения его, как показано выше.
$sql ="SELECT DISTINCT
city,
state,
stateAbv,
COUNT(CASE WHEN open = 'Y' THEN 1 END) AS cnt
FROM $tbl_name
WHERE open = 'Y'
GROUP BY
city,
state,
stateAbv
ORDER BY
state;";
$result = mysqli_query($conn,$sql);
$num_columns = 1;
$rows = array();
$k=0;
while($row = mysqli_fetch_assoc($result)){
$state = $row['state'];
$stateAbv = $row['stateAbv'];
$city = $row['city'];
//Count of stores in every city
$values = mysqli_fetch_assoc($result);
$numStores = $values['cnt'];
if(!isset($rows[$row['state']])){
$rows[$row['state']] = array();
}
$rows[$row['state']][] = $city;
}
foreach($rows as $state => $cities){
echo '<b>'. $state .'</b>';
$cityChunks = array_chunk ($cities, $num_columns);
sort($cityChunks);
foreach($cityChunks as $row){
for($i=0; $i<$num_columns; $i++){
$city = isset($row[$i]) ? $row[$i] : "";
if ($k<3){
echo "$city($numStores)";
}
$k++;
}
}
$k=0;
}
Мой $rows
массив выглядит так прямо сейчасполучить город там, но у меня возникли проблемы с получением города и подсчетом и отображением его правильно.
Array
(
[Alabama] => Array
(
[0] => Mobile
[1] => Auburn
[2] => Hoover
[3] => Foley
)
)