У меня проблема с тем, что мои результаты ведут себя правильно. У меня есть два вопроса: один для получения всей информации о клубах в таблице, а другой - для подсчета всех членов каждого клуба в указанной таблице.
Проблема в том, что общее число отображается некорректно, после последней ячейки на столе, а не рядом, как будто я собираюсь отобразить ее.
Вот как это выглядит:
И вот мои запросы:
Для стола
$sql = "SELECT id, nombreClub, liderVoluntario, region, municipio, oficinaLoc
FROM club4h
ORDER BY region, oficinaLoc";
Для итогов
$sql = "SELECT count(soc.nombreClub)
FROM socios as soc
RIGHT OUTER JOIN club4h as club
ON soc.nombreClub = club.nombreClub
GROUP BY club.id";
И код того, как я отображаю таблицу
<table>
<?php
$name = '';
$filler = '';
echo '<tr>
<th>Región</th>
<th>Unidad Programática</th>
<th>Nombre Club</th>
<th>Lider Voluntario</th>
<th>Localización Club</th>
<th>Total Socios</th>
</tr>';
foreach($result as $key=>$row){
echo'<tr>
<td>'.ucfirst($row['region']).'</td>';
if(($row['id']) !=$filler) echo
'<td>'.ucfirst($row['oficinaLoc']).'</td>';
$filler = $row['id'];
echo '<td>'.ucfirst($row['nombreClub']).'</td>
<td>'.ucfirst($row['liderVoluntario']).'</td>
<td>'.ucfirst($row['municipio']).'</td>';
}
include_once 'sociocount.php';
foreach($memberSearch as $total){
echo '<td>'.$memberSearch[$i][0].'</td>
</tr>';
$i++;
}
?>
</table>
Можно ли это сделать в одном запросе? Или что я делаю неправильно, что это заставляет его отображаться так?
вы можете выбрать все в одном запросе, вот пример:
SELECT
id,
nombreClub,
liderVoluntario,
region,
municipio,
oficinaLoc,
(select count(*) from socios as soc where soc.nombreClub=c.nombreClub) as memberCnt
FROM club4h as c
ORDER BY region, oficinaLoc
members
),club
FROMtable
GROUP BYclub