我試圖根據他們發佈的帖子數量爲用戶提供排名。我創建了一個包含一個rankName行的數據庫,其中包含「beginner,新手,itermediate,... to master」以及包含一些數字的最小行。我試圖比較帖子數量($ qtyPosts)與最小行數。從操作員的數據庫中獲取特定值
例如:當一個用戶有9個職位,他得到的排名新手(至少有5個職位)。 這是我爲此編寫的代碼。
PHP代碼
// calculate number of posts from user
$rowsPosts = $user->getQuantityOfPosts($userID);
$qtyPosts = 0;
foreach ($rowsPosts as $q) {
$qtyPosts++;
}
//status
$conn = db::getInstance();
$rank = "";
$statementRank = $conn->prepare("SELECT * FROM rank WHERE rank.minimum >= $qtyPosts");
$statementRank->execute();
while($row = $statementRank->fetch(PDO::FETCH_ASSOC)){
$rank = $row['rankName'];
}
HTML代碼
<h3>Status: <?php echo $rank; ?></h3>
但是,它不會發布正確的等級,而是張貼最新的一個, 「主人」。任何想法?
我不明白這裏的邏輯,0的$ qtyPosts不會返回每個級別與您的SQL?您的查詢中沒有訂單或限制... – Devon
在'$ rank = $ row ['rankName'];','$ rank'每次都會被覆蓋。只有最後的價值成立! – Thamilan