Как проверить наличие «всех» случаев в инструкции select option

#php #mysql

#php #mysql

Вопрос:

У меня есть проблема в моем коде, которую, возможно, кто-то может проверить и указать на проблему. Я создаю две веб-страницы на php и запрашиваю переменные с одной страницы на другую. Как вы видите на фотографии на моей первой странице, у меня есть выпадающий список значений, которые я успешно извлекаю из базы данных. На второй странице я хочу распечатать список совпадающих элементов, которые являются лодками на основе выбора, выбранного пользователем на первой странице. Теперь оттуда я создаю sql-запрос, чтобы сначала проверить, что пользователь не выбрал «Все» или не смешивает «Все» с предоставленными вариантами. Если это не так, то имя поля базы данных равно запрошенному элементу и отображает его на экране. На второй странице я успешно подключился к базе данных. Проблема в том, что при тестировании моего кода экран остается пустым, что означает, что моя строка неисправна. Заранее спасибо. Вот мой код

Комментарии:

1. Попробуйте изменить sqlStr = "AND 1=1"; sqlStr .= "AND 1=1"; везде, вы в основном перезаписываете sqlStr каждый раз.

Ответ №1:

Из того, что я вижу здесь, вы постоянно перезаписываете значение sqlStr вместо добавления к нему.

И вы пропустили $ раньше sqlStr

Попробуйте:

 $sqlStr = "SELECT * FROM boats  Where";

if($boatClass == 'All')
    (
        $sqlStr .= " AND 1=1";
    )
else
{
    'Class' = $boatClass;
}
if($boatMake == 'All')
    (
        $sqlStr .= " AND 1=1";
    )
else
{
    'Make' = $boatMake;
}
if($Year == 'All')
    (
        $sqlStr .= " AND 1=1";
    )
else
{
    'Year' = $Year;
}
if($used == 'All')
    (
        $sqlStr .= " AND 1=1";
    )
else
{
    'UsedOrNew' = $used;
}
 

Комментарии:

1. Я почти уверен, что есть еще несколько ошибок. Но я не могу помочь вам только этой информацией.

2.Да, я предполагаю, что такие вещи 'Class' = $boatClass; должны быть чем-то вроде $sqlStr .= "`Class` = '".$boatClass."'"; …за исключением использования надлежащих методов параметризованных запросов.

Ответ №2:

Пустая страница означает, что у вас есть ошибки синтаксического анализа. Если вы работаете только на компьютере разработчика, вы можете изменить php.ini для отображения ошибок. По умолчанию он отключен по соображениям безопасности.

Или вы можете проверить журнал ошибок, он заполняется каждый раз при запуске скрипта с ошибками.

Чтобы найти, где находится ваш файл журнала, запустите скрипт phpinfo: http://php.net/manual/pt_BR/function.phpinfo.php и проверьте, нет ли error_log.

Если оно пустое, то места по умолчанию для файла журнала ошибок:

 linux   nginx is: /var/log/nginx/error.log
linux   apache is: /var/log/apache/error.log
Windows is likely to be in path/to/php/log/error-something.txt
 

Надеюсь, это поможет,