За последние 24 часа нас посетили 17465 программистов и 1715 роботов. Сейчас ищут 1687 программистов ...

Помогите вытащить изображения из БД

Тема в разделе "PHP и базы данных", создана пользователем DimaG, 16 фев 2023.

  1. DimaG

    DimaG Новичок

    С нами с:
    16 фев 2023
    Сообщения:
    3
    Симпатии:
    0
    Не судите строго, я новичок. Есть сайт, хотелось бы чтобы логотипы и картинки выводились из БД. Проблема в том, что мне необходимо иметь только одну таблицу для всего сайта. А там соответственно есть столбцы для шапки, подвала... При выводе изображений с помощью mysqli_fetch_assoc считывает пустые значения, которые остались при заполнении других столбцов, и вставляет в код для вывода картинки. И получается, что появляется как нужная картинка, так и "значки". Код прилагаю:
    PHP:
    1. <header>
    2.     <table class="hea1">
    3.         <tr>
    4.             <td class="hea8">
    5.             </td>
    6.             <td rowspan="2">
    7.                 <?php
    8.                     $result = mysqli_query($link, "SELECT header_logo_href, header_logo_link FROM `probnik` WHERE header_logo_href IS NOT NULL");
    9.                     while($row = mysqli_fetch_assoc ($result)){
    10.                         echo '
    11.                            <a href="'.$row["header_logo_href"].'"><img class="hea2" src="images/'.$row["header_logo_link"].'"></a>
    12.                        ';
    13.                     }
    14.                 ?>
    15.             </td>
    16.             <td class="hea8">
    17.             </td>
    18.         </tr>
    19.         <tr>
    20.             <td class="hea8">
    21.             </td>
    22.             <td class="hea8" valign="bottom">
    23.                 <div class="hea6">
    24.                     <?php
    25.                         $result = mysqli_query($link, "SELECT header_soc_href, header_soc_link FROM `probnik` WHERE header_soc_href IS NOT NULL");
    26.                         while($row = mysqli_fetch_assoc ($result)){
    27.                             echo '
    28.                                <a class="hea9" href="'.$row["header_soc_href"].'"><img class="hea7" src="images/'.$row["header_soc_link"].'"></a>
    29.                            ';
    30.                         }
    31.                     ?>
    32.                 </div>
    33.             </td>
    34.         </tr>
    35.     </table>
    От модератора: для кода кнопка </>
     
    #1 DimaG, 16 фев 2023
    Последнее редактирование модератором: 16 фев 2023
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.839
    Симпатии:
    651
    Шо за бред?

    Какие «значки»? Кривые ссылки на картинки что ли?

    P.S. Не надо mysqli_query в шаблон втыкать! :)
    --- Добавлено ---
    Чем _href от _link отличается, тоже не понятно. Нормально объясните.
     
  3. DimaG

    DimaG Новичок

    С нами с:
    16 фев 2023
    Сообщения:
    3
    Симпатии:
    0
    Ну вот мне необходимо, что весь контент всего сайта в одной таблице был. Значки это то что я на фото прикладываю. _href и _link - это заголовки столбцов(фото также приложил). Но по-моему вся проблема в том, что я не выставил значение NULL
    Безымянный.png 2.png 3.png
     
  4. ibnteo

    ibnteo Активный пользователь

    С нами с:
    30 сен 2008
    Сообщения:
    34
    Симпатии:
    1
    У тебя видимо пустые поля, если они не null, а просто пустая строка '', то можно сделать вот так, чтобы пустые картинки заменялись на какую-то стандартную (blank.png):
    Код (Text):
    1. <img src="images/'.($row["header_logo_link"] ?: 'blank.png').'">
    Если данные будут null, то замени ?: на ??
     
  5. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @DimaG, а если "и то, и другое":
    PHP:
    1. $row["header_logo_link"] ?? false ?: 'blank.png'
     
  6. DimaG

    DimaG Новичок

    С нами с:
    16 фев 2023
    Сообщения:
    3
    Симпатии:
    0
    Спасибо за советы, но проблема решилось, когда я выставил NULL в БД в пустых строчках, а в коде запроса прописал:
    Код (Text):
    1. $result = mysqli_query(...WHERE ... IS NOT NULL)
    --- Добавлено ---
    Спасибо за совет, в будущем обязательно пригодится, а пока решил проблему выставив NULL