Saya membaca posting Anda sebelumnya dan yang ini. Jika saya mendapatkan idenya, hal dasarnya adalah Anda memiliki tim dan Anda memiliki pemain dan Anda ingin menampilkan data dalam pengelompokan standar tertentu (bisa dibilang begitu).
Nah, ada datum konstan yang selalu Anda bandingkan dengan ukuran tim.
Apa yang akan saya lakukan adalah membuat subquery yang mengelompokkan tim dengan jumlah pemain dan menggunakannya dalam beberapa cara sebagai berikut:
select t.*
, x.total_players
-- , row_number() over(order by t.team_name) row_id
from team_table t
join (
select team_id
, count(1) total_playerss
from team_table
group by team_id
) x on x.team_id = t.team_id
order by t.team_name
Saat menggemakan hasil yang ditetapkan dalam PHP, Anda dapat membangun beberapa fungsi seperti:
<?php
function add_some_word($playerCount) {
if ($playerCount >4 && $playerCount <= 8) {
echo '*** SOME WORD***';
echo '*** SOME WORD***';
echo '*** SOME WORD***';
}
else if ($playerCount >4 && $playerCount <= 8) {
echo '*** SOME WORD***';
echo '*** SOME WORD***';
}
// etc.
}
?>
Menggunakan row_id
dari kumpulan hasil, Anda dapat melihat kapan tim mulai dan berakhir.
Jadi ketika mengeluarkan baris itu bisa menjadi seperti:"
<?php
$currentTeamName = "";
while ($row = pg_fetch_array($result,null,PGSQL_ASSOC)) {
// echo data you would normally send out
if ($currentTeamName != $row['team_name']) {
add_some_word($row['total_players']);
}
}
?>
Saya harap saya menjawab pertanyaan Anda dengan benar. Saya melakukan ini dengan cepat, tetapi saya pikir ini akan membantu!