Как говорится в названии, я пытаюсь отображать цифры между 0,1-1,9 в качестве Сезона 1, а затем 2.0-2.9 сезона 2 и т.д., Что то, что я пробовал до сих пор
$sql="SELECT Patch_No, Created FROM info ORDER BY Patch_NO DESC";
$result = $conn->query($sql);
while($data = $result->fetch_assoc()){
if(!isset($seasons[ceil($data['Patch_No'])])||is_int($data['Patch_No'])&&ceil($data['Patch_No'])==$data['Patch_No']+1){
$seasons[ceil($data['Patch_No'])]=ceil($data['Patch_No']);
echo '<hr><i>SEASON '.ceil($data['Patch_No']).'<br></i><hr>';
}
echo '<a href="delete_patch.php?Patch_No='.$data['Patch_No'].'" alt="'.$data['Created'].'" title="'.$data['Created'].'">
'.$data['Patch_No'].'</a><br>';
}
echo '<hr><hr><a href="index.php">CMS</a>';
И вот результат: http://i.imgur.com/VeN8pD8.png довольно близко
Вы легко можете получить сезон в SQL. В MySQL, например, вы можете использовать substring_index()
:
SELECT Patch_No, Created, SUBSTRING_INDEX(Patch_No, '.', 1) as Season
FROM info
ORDER BY Patch_NO DESC;
Другие базы данных имеют схожие функции, которые могут быть использованы для этой цели.
Обратите внимание, что это просто извлечение первой цифры из Patch_No
, которая кажется вашим намерением.
Это фактически отделяет 0,1-0,9 от 1,0, что имеет смысл для меня. Если вы хотите, чтобы эти, как один сезон, вы можете использовать case
выражение.
SELECT Patch_No, Created,
(CASE WHEN Patch_No like '%0' THEN '1'
ELSE SUBSTRING_INDEX(Patch_No, '.', 1)
END) as Season
FROM info
ORDER BY Patch_NO DESC;