@Alex_ART

Как не нагавнокодить в этом примере?

Hello world!
Самоучка, тренируюсь писать код, сейчас делаю интернет магазин
вообщем суть вопроса
имею
Планшеты - картинка в А/tablets/..
Ноутбуки - картинка в А/noutes/..
Телефоны -картинка в А/phones/..
А вот мне например нужно вывести топ 5 просмотренных товаров - а для каждого товара картинка лежит в отдельной папке . Я вот так как то накрутил
<?php
 $views = mysqli_query($connection, "SELECT * FROM `goods` ORDER by `views` DESC limit 5");
                    while ($top_views = mysqli_fetch_assoc($views)) { ?>
                        <article class="article">
                            <div class="article__image" style="background-image: url(/media/images/<?php
                            if ($top_views['categorie_id'] == 1) {
                                echo "tablet/";
                            } elseif ($top_views['categorie_id'] == 2) {
                                echo "phones/";
                            } else {
                                echo "nouts/";
                            }
                            echo $top_views['img'];
                            ?>
                            "></div>

Всё работает, но это сильно похоже на кусочек г*** а не на код, как можно сделать лучше?
Подскажите нубу)
  • Вопрос задан
  • 439 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Варианты
использование ООП решит эту проблему, путем добавления метода для этого
написать функцию, которая будет возвращать нужный url
хранить полный url в базе

Но и Ваш метод не супер Г. Вот только вместо if надо хотя бы switch case использовать. Или массив типа
<?php $arr = [2=>'/tablet',18=>'phones/']; ?>
<div class="article__image" style="background-image: url(/media/images/<?= $arr[$top_views['categorie_id']]?>"></div>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы