Помогите пожалуйста, исправить ошибку Вводные данные Код (Text): $institutions # Это массив полученный через POST $month # Это массив полученный через POST $users = implode(",",$institutions); $list = implode(",",$month); $query ="SELECT user_name, heat, SUM(volume1), SUM(cost1), water_disposal, SUM(volume2), SUM(cost2), water_supply, SUM(volume3), SUM(cost3), electro, SUM(volume4), SUM(cost4), garbage, SUM(volume5), SUM(cost5), disposal, SUM(volume6), SUM(cost6), SUM(total) FROM `$year` WHERE month IN($list) AND `user_name` IN($users) AND `group` = '$value' GROUP BY user_name"; При выполнении скрипта вижу ошибку: Код (Text): Warning: Invalid argument supplied for foreach() in /usr/local/www/portal/construct_table.php on line 193 ERORRRR You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND `user_name` IN()' at line 1
А можно пожалуйста подробнее по поводу апострофы? Оператор IN () работает только с числами? У меня как раз сейчас проблема, может с этим и связана? Выполняю код, для вывода таблицы: Код (Text): $query ="SELECT * FROM `$year` WHERE `user_name` IN('$users') AND `group` = 'A'"; Если массив $users содержит одно название внутри, то таблица успешно отображается Но если внутри массива 2 названия учреждений, то таблица выходит пустая...Хотя должна показать два учреждения... Если я непонятно объяснил скажите, я объясню более понятно... Почему оператор IN () некорректно работает если значение не числовое?
@Reken, осознали, что надо получить не строку 'x,y', а строку 'x','y'? Если да, то должно придти понимание, что первый аргумент функции implode() должен быть несколько другим.
Спасибо, осознание пришло... Код (Text): $users = implode("','",$institutions); Теперь скрипт отрабатывает должным образом