Вывод всех записей из таблицы используя WHERE

164
19 апреля 2018, 10:48

Есть код:

$id = "1";
$name = "петя"; 
$year = "20";
$result = mysqli_query($link, "SELECT * FROM table WHERE id = '".$id."' AND WHERE name = '".$name."' AND WHERE year = '".$year."'");
while ($row = mysqli_fetch_assoc($result)){
}

В данном случае выведет строку с id = 1, именем петя и возрастом 20.

Как сделать вывод всех пользователей с именем "петя" не меняя запрос, что то типа:

SELECT * FROM table WHERE id = * AND WHERE name = 'петя' AND WHERE year = *

Сделать при помощи нескольких запросов я могу, но как именно сделать чтобы одним?

Мне нужно именно одним запросом, раньше я делал так:

if ($_GET['autor']!="0") $param .= "autor = '".$_GET['autor']."' AND ";
if ($_GET['izdatel']!="0") $param .= "izdatel = '".$_GET['izdatel']."' AND ";
if ($_GET['obrazec']!="0") 
if ($_GET['obrazec']=="Да")
$param .= "obrazec > 0 AND ";
else
$param .= "obrazec = 0 AND ";
if ($_GET['class']!=0) $param .= "class = ".$_GET['class']." AND ";
}
$param = substr($param, 0, -4);
if ($param != "") $param = " WHERE ".$param;
$result = mysqli_query($link, "SELECT * FROM products".$param);

Но данный способ занимает много места. Я хотел бы узнать, можно ли сделать это одним запросом.

Answer 1

Уберите уточнения по id и year

SELECT * FROM table WHERE name = 'петя'

Если надо, чтобы условия игнорировались, можно так, но это костыль, и не делайте так совсем:

SELECT * FROM table WHERE id = id AND name = 'петя' AND year = year

В вашем случае, с переменными, так (но, умоляю, всё же, не делайте так):

$id = "'1'"; // чтобы не учитывать, ставим $id = "id"
$name = "'петя'"; 
$year = "'20'"; // чтобы не учитывать, ставим $year = "year"
$result = mysqli_query($link, "SELECT * FROM table WHERE id = $id AND name = $name AND year = $year");
READ ALSO
Проверка на то что пользователь уже существует Symfony

Проверка на то что пользователь уже существует Symfony

Здравствуйте, сделал регистрацию и авторизацию на симфони 2 по этому туториалу: https://symfonycom

127
Python - PHP отличия побитового сдвига

Python - PHP отличия побитового сдвига

Пожалуйста поясните в чем косяк, переписываю одну функцию с php на pythonОсуществляется такой сдвиг:

164
Защита от XSS и обратный слеш

Защита от XSS и обратный слеш

На клиенте перед отправкой на сервер отсекаю практически всё за исключением русского, украинского и белорусского шрифтовДелаю это в первую...

174
php, как установить и запустить на Ubuntu 16.04?

php, как установить и запустить на Ubuntu 16.04?

Не могу установить и настроить сервер для php, до этого учил djangoТам все просто установил Python , запустил venvironment и работаешь спокойно

157