我一直在集思广益,寻找通知用户他们已解锁徽章的最佳方式的想法。它不需要是即时的或实时的。我在想,至少每次他们查看仪表板时,它都会运行以检查状态然后显示。这是我一直在思考的大方向。
我有两张桌子。一个称为badge_status,另一个称为users表。
在用户表中,我有用户和徽章字段,例如 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的表写入为“finished”。
在旁注中,我仍在转换为适当的 PDO。感谢您对此设置提供的任何建议、提示或改进!