Оператор if в предложении где синтаксическая ошибка MySQL - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь использовать условие if в MySQL. Я получаю синтаксическую ошибку. Я пытался посмотреть на множество других обсуждений Переполнения стека, но не смог понять это. Может кто-нибудь, пожалуйста, помогите мне?

Это мой код:

if(isset($_POST['Submit'])) {
$branch = $_POST['branch'];
$query = "SELECT * FROM table
WHERE branch='$branch' and testcase like 
IF(isset(_$POST['testcase']),'$_POST['testcase']','1=1')";
....
}

Я хочу выполнить операцию и в WHERE между branch='$branch' и testcase, в зависимости от того, выбрана она или нет в моей форме. Если он выбран, я хочу выполнить операцию и между веткой и значением testcase. Если нет, я просто хочу отфильтровать результаты по значению $branch.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Isset - это не команда mysql, это команда php. Вы должны сначала создать свою переменную.

$bleach = false

IF(isset($_POST['testcase'])
{
$bleach = $_POST['testcase']
}
Else 
{
$bleach=1
}

Затем введите $ bleach в ваш запрос

0 голосов
/ 28 июня 2018

Если я правильно понимаю, вы хотите иметь динамический запрос, основанный на том, установлено ли значение testcase или нет?

Если это так, вы можете попробовать это:

if(isset($_POST['Submit'])) {
$branch = $_POST['branch'];
$testcase = "";

 if (isset($_POST['testcase'])) {
    $testcase = "and testcase like '" . $_POST['testcase'] . "'";
 }

 $query = "SELECT * FROM table
 WHERE branch='$branch' $testcase";

Таким образом, если задано значение тестового набора, для $testcase будет установлена ​​часть запроса and testcase like. Если он не установлен, то это будет пустая строка, в которой будет $query только со значением $branch.

...