$query = 'SELECT COUNT(*) FROM task WHERE user_task="'.$user.'"';
foreach ($parameters as $key=>$val) {
if (!$key || !$key%2) $query .= ' AND '.$val.'="';
else $query .= $val.'"';
}
echo $query;
//SELECT COUNT(*) FROM task WHERE user_task="2" AND status_task="0"status_task"1"
Почему такой результат???? Должен же быть:
SELECT COUNT(*) FROM task WHERE user_task="2" AND status_task="0" AND status_task="1"
Ну разберите свой код по порядку и все станет на место.
Первая итерация: !0 || !0%2 => !(false) || !(false) => true || true => true
Вторая итерация: !1 || ... => !(true) || ... => false || ... => false
Третья итерация: !2 || ... => !(true) || ... => false || ... => false
Как видите, результат всегда отрицательный и не зависит от того, что у Вас идет после первой проверки. В итоге будет только один AND
в самом начале и дальше все будет сплошной строкой. Поэтому в случае ошибок на простых блоках проверяйте свой алгоритм на правильность, если не в уме, то хотя бы на бумаге расписывая его правильность.
И да, это небезопасный способ составления запросов, так как содержит уязвимисти и приложение можно легко взломать хакеру. Используйте подготовленные запросы для PDO или подготовленные запросы для mysqli.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Слева блок это категорииНа каждой странице (/cart или /register) видно этот блок
Не получается написать скриптСмысл с в том, что мне нужно сравнить время которое записано у пользователя в бд, с текущим, и если разница составляет...
Не получается скомпилировать приложение для смартфонов(https://vk
Покажите пожалуйста как это сделать красиво используя стандартный массив, очень смущает int *_arr = new int[len]; <- вообще честно говоря жутковатый...