Tôi đã đọc bài viết trước của bạn và bài viết này. Nếu tôi hiểu, điều cơ bản là bạn có các đội và bạn có người chơi và bạn muốn hiển thị dữ liệu trong một số nhóm tiêu chuẩn nhất định (so-to-speak).
Chà, có một dữ liệu không đổi mà bạn luôn so sánh với đó là quy mô của nhóm.
Những gì tôi sẽ làm là tạo một truy vấn con nhóm đội với số lượng người chơi và sử dụng điều này theo một số cách như sau:
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
Khi lặp lại tập kết quả trong PHP, bạn có thể xây dựng một số hàm như:
<?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.
}
?>
Sử dụng row_id
từ tập hợp kết quả, bạn có thể biết khi nào một đội bắt đầu và kết thúc.
Vì vậy, khi nó xuất hiện các hàng, nó có thể là một cái gì đó giống như:"
<?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']);
}
}
?>
Tôi hy vọng tôi đã trả lời đúng câu hỏi của bạn. Tôi đang làm việc này nhanh chóng nhưng tôi nghĩ nó sẽ hữu ích!