Отображение чисел между 0,1-1,9, 2,0-2,9 и т. Д.,

0

Как говорится в названии, я пытаюсь отображать цифры между 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 довольно близко

  • 0
    Пожалуйста, отметьте свой вопрос с базой данных, которую вы используете.
Теги:
arrays
pdo

1 ответ

0

Вы легко можете получить сезон в 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;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню