我一直在爲通知用戶他們已解鎖徽章的最佳方式進行頭腦風暴。它不需要是即時的或生活的。我至少在每次查看他們的儀表板時都會考慮檢查狀態,然後顯示。這是我一直在想的大方向。徽章解鎖通知設置
我有兩個表。一個名爲的badge_status和另一個用戶表。
在用戶表中我有用戶和徽章字段,如Badge1,Badge2,Badge3等。徽章字段的默認值設置爲「鎖定」。當用戶做出正確的行動來解鎖徽章時,該字段將變爲「解鎖」
我在想這樣的通知設置,但我想知道它是過度殺毒還是有更簡單的方法?
<?php
$db = new PDO('mysql:host=hostname;dbname=dbname;charset=UTF-8', 'username', 'password');
$username = $_SESSION['jigowatt']['username'];
$statement = $db->prepare("SELECT badge1, badge1_status FROM login_users, status_table WHERE username = :username");
$badge1 = $row['badge1'];
$badge1_status = $row['badge1_status'];
if($badge1_status == "finished") {
}
else if($badge1 =="unlocked") {
// Show fade in pop up div for notification <div id="notification-div">Badge Unlocked!</div>
$setBadgeValue = $db->prepare("UPDATE status_table SET badge1_status='finished' WHERE username= :username");
}
<?
我將有第二個表設置,如果徽章1的狀態爲「已完成」,那麼它不會做任何事情,從而確保該通知只顯示一次。
如果未完成並且badge1s狀態爲「解鎖」,則顯示通知DIV,然後將badge1_status的表寫入「已完成」。
在旁註中,我仍在轉換到正確的PDO。感謝您提供有關此設置的任何建議,提示或改進建議!
不是答案,但您可能需要[禁用模擬預處理語句](http://stackoverflow.com/a/60496/508666)。 – PeeHaa
只需列出徽章被解鎖的日期/時間並記錄上次解鎖通知的發佈情況就更有意義。自那時以來已經解鎖的任何徽章將是「新」。顯示通知,更新「上次通知」時間戳,並完成。 –
「在用戶表中我有用戶和徽章字段,如Badge1,Badge2,Badge3」真的嗎?這些屬於交叉參考表(加入用戶和徽章)。 –