PHP скрыть данные, если строка mysql пуста

У меня есть PHP, который вытаскивает записи MySQL в таблицу HTML. Заголовки таблиц по-прежнему видны, когда запрос не дает результатов, поэтому я хотел использовать функцию ЕСЛИ для отображения альтернативного сообщения во внешнем интерфейсе.

Мои пока ограниченные знания PHP означают, что я изо всех сил пытаюсь найти способ проверить результаты. Каждый метод, с которым я сталкивался в Интернете, заходил в тупик.

Кто-нибудь может увидеть, что мне не хватает, пожалуйста?

$result = mysqli_query($con,"SELECT * FROM stock WHERE (SKU='$SKUsearch1' AND Location='London Store') OR (SKU='$SKUsearch2' AND Location='London Store') OR (SKU='$SKUsearch3' AND Location='London Store') OR (SKU='$SKUsearch4' AND Location='London Store') OR (SKU='$SKUsearch5' AND Location='London Store') OR (SKU='$SKUsearch6' AND Location='London Store') OR (SKU='$SKUsearch7' AND Location='London Store') OR (SKU='$SKUsearch8' AND Location='London Store') OR (SKU='$SKUsearch9' AND Location='London Store') OR (SKU='$SKUsearch10' AND Location='London Store') OR (SKU='$SKUsearch11' AND Location='London Store') OR (SKU='$SKUsearch12' AND Location='London Store') ");


if (!$row['Location']) {

                echo "<table class='availableTable' border='1'>
                <tr>
                <th>Location</th>
                <th>Item</th>
                <th>Availability</th>
                </tr>";

                while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
                {
                echo "<tr>";
                echo "<td>" . $row['Location'] . "</td>";
                echo "<td>" . $row['Name'] . "</td>";

                if (($row['Available']) > 0) {
                echo "<td> In Stock </td>";
                }
                else {
                echo "<td> Out of Stock </td>";
                }

                echo "</tr>";
                }
                echo "</table>";




}

else {

        echo "<div class='availableText'>No instore stock information is currently available for this product.</div>";

}

Я настоятельно рекомендую изменить этот оператор SELECT на что-то вроде: Location='London Store' AND SKU IN (....)

dustytrash 19.09.2018 20:54

Где определяется $row? Похоже, что он используется в операторе IF до того, как он определен

dustytrash 19.09.2018 20:56

Я подозреваю, что @dustytrash справился с этим. Если нет, отредактируйте свой вопрос, включив в него вывод, который вы получаете.

David Hempy 19.09.2018 21:03

@dustytrash Попался. Я искал способ получше. Ваше здоровье!

schwarzenhut 19.09.2018 21:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

$ row ['Местоположение']$ row недоступен до цикла while

$result = mysqli_query($con,"SELECT * FROM stock WHERE (SKU='$SKUsearch1' AND Location='London Store') OR (SKU='$SKUsearch2' AND Location='London Store') OR (SKU='$SKUsearch3' AND Location='London Store') OR (SKU='$SKUsearch4' AND Location='London Store') OR (SKU='$SKUsearch5' AND Location='London Store') OR (SKU='$SKUsearch6' AND Location='London Store') OR (SKU='$SKUsearch7' AND Location='London Store') OR (SKU='$SKUsearch8' AND Location='London Store') OR (SKU='$SKUsearch9' AND Location='London Store') OR (SKU='$SKUsearch10' AND Location='London Store') OR (SKU='$SKUsearch11' AND Location='London Store') OR (SKU='$SKUsearch12' AND Location='London Store') ");


    if (mysqli_num_rows($result)>0) {

                    echo "<table class='availableTable' border='1'>
                    <tr>
                    <th>Location</th>
                    <th>Item</th>
                    <th>Availability</th>
                    </tr>";

                    while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
                    {
                    echo "<tr>";
                    echo "<td>" . $row['Location'] . "</td>";
                    echo "<td>" . $row['Name'] . "</td>";

                    if (($row['Available']) > 0) {
                    echo "<td> In Stock </td>";
                    }
                    else {
                    echo "<td> Out of Stock </td>";
                    }

                    echo "</tr>";
                    }
                    echo "</table>";




        }

        else {

                echo "<div class='availableText'>No instore stock information is currently available for this product.</div>";
    }

попробуйте mysqli_num_rows ($ результат)http://php.net/manual/en/mysqli-result.num-rows.php

Другие вопросы по теме