DATE_ADD(CURDATE(), INTERVAL -1 DAY) // GROUP BY mapType // ) AS expireTimes ON mapOfTheDay.mapType = expireTimes.mapType // AND mapOfTheDay.mapExpireTime = expireTimes.mapExpireTime // GROUP BY mapOfTheDay.mapType // ) AS correctMapIds ON maps.ID = correctMapIds.mapId //TODO: SANITIZE. function getMapIDsByDate($date) { global $mysqli; $sql = "SELECT MIN(mapOfTheDay.mapId) AS mapId FROM `mapOfTheDay` INNER JOIN ( SELECT mapType, MIN(mapExpireTime) AS mapExpireTime FROM mapOfTheDay WHERE mapExpireTime > ? GROUP BY mapType ) AS expireTimes ON mapOfTheDay.mapType = expireTimes.mapType AND mapOfTheDay.mapExpireTime = expireTimes.mapExpireTime GROUP BY mapOfTheDay.mapType"; $stmt = $mysqli->prepare($sql); $stmt->bind_param("s", $date); $stmt->execute(); $stmt->bind_result($mapID); /* fetch values */ while ($stmt->fetch()) { $ids[] = $mapID; } return $ids; var_dump($ids); while ($myrow[] = $result->fetch_assoc()) {} $result = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($result) == 0) return -1; global $mapNamesByType; $r = array(); while($data[] = mysql_fetch_array($result)) { $mapID = $data['mapID']; $mapType = $data['mapType']; $map = new map($code); if ($map->name == '') $map->name = $mapNamesByType[$mapType]; $r[$mapID] = $map; } return $myrow; } function getMapsPlayed($daysAgo) { // $sql = " // SELECT `mapID`, `code`, `mapType` // FROM `mapOfTheDay` // INNER JOIN `maps` ON `mapID` = maps.ID // WHERE DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) = // mapDate AND // `mapType` IN (1, 2, 3, 4, 5) // "; $sql = "SELECT correctMapIds.mapType, maps.ID as mapID, maps.code FROM maps INNER JOIN ( SELECT MIN(mapOfTheDay.mapId) AS mapId, mapOfTheDay.mapType FROM `mapOfTheDay` INNER JOIN ( SELECT mapType, MIN(mapExpireTime) AS mapExpireTime FROM mapOfTheDay WHERE mapExpireTime > DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) GROUP BY mapType ) AS expireTimes ON mapOfTheDay.mapType = expireTimes.mapType AND mapOfTheDay.mapExpireTime = expireTimes.mapExpireTime GROUP BY mapOfTheDay.mapType ) AS correctMapIds ON maps.ID = correctMapIds.mapId"; $result = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($result) == 0) return -1; global $mapNamesByType; $r = array(); while($data = mysql_fetch_array($result)) { $code = $data['code']; $mapID = $data['mapID']; $mapType = $data['mapType']; $map = new map($code); if ($map->name == '') $map->name = $mapNamesByType[$mapType]; $r[$mapID] = $map; } return $r; } function getMapNavigation(&$maps) { foreach ($maps as $mapID => &$map) { $r .= "
"; $r .= $map->name; $r .= DisplayMapThumbnail($map); $r .= "
";; } return $r; } ?>