function getAcheivements() { $sql = 'SELECT a.id, u.username, a.title, a.description FROM acheivments_earnt e LEFT JOIN achievements a ON e.acheiv = a.id LEFT JOIN users u ON e.user = u.id WHERE u.id = :userId '; $stmt = DatabaseFactory::getInstance()->prepare($sql); $stmt->bindValue(':userId', Session::getUser()->getId()); $stmt->execute(); $acheivs = $stmt->fetchAll(); applyAcheivIcons($acheivs); return $acheivs; }
<?php require_once 'includes/common.php'; use libAllure\Session; if (!Session::isLoggedIn()) { redirect('login.php', 'You need to be logged in!'); } require_once 'includes/widgets/header.php'; applyAchievements(); $sql = 'SELECT a.id, a.title, a.description FROM achievements a'; $stmt = $db->prepare($sql); $stmt->execute(); $avail = $stmt->fetchAll(); $earned = getAcheivements(); $earnedIds = array(); foreach ($earned as $acheiv) { $earnedIds[] = $acheiv['id']; } for ($i = 0; $i < sizeof($avail); $i++) { $avail[$i]['earned'] = in_array($avail[$i]['id'], $earnedIds); } applyAcheivIcons($avail); $tpl->assign('listAchievements', $avail); $tpl->display('listAchievements.tpl'); require_once 'includes/widgets/footer.php';