Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: фильтрация по определенным критериям и вывод в виде таблицы
Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Хочу сделать таблицу с выводом и вводом данных по пользователям и с сортировкой(фильтрацией) + чтобы данную в данную таблицу можно было добавлять и убирать значения. Таблицу сделал убирать и добавлять тоже, а вот с фильтрацией застрял Пробовал через формы подключать файл с php не получилось. Я сам понимаю что надо скорее всего критерии отбора выносить в другую часть(другу форму php или hmtl). Но не пойму как правильно передать данные из одной формы php в другую передавая данные для фильтрации.
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
Фильтрация у вас в самом запросе. Через GET получайте нужный параметр и подставляйте его в WHERE. Только фильтровать сам get-параметр не забывайте, что бы инъекций и всего такого не было. Упрощенно так
$class=intval($_GET['class'])// в этой строчке фильтруем полученые через GET данные
$where=$where."AND `class` = $class";//если есть фильрация по полю class запрос станет таким "SELECT * FROM users WHERE `user` = 'admin' AND `class` = 1 "
}
и так далее типа такого
alezander
Отправлено: 19 Января, 2017 - 19:18:00
Новичок
Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
Спасибо это я примерно понял я не пойму как подвязать кнопку к примеру у меня есть кнопка "на дату"
$result = mysqli_query($connection, "SELECT * FROM users $where");
print_r($result);
$where = "WHERE `user` = 'admin'";
if($_POST['needdate']){
$class= ($_POST['needdate']) // в этой строчке фильтруем полученые через GET данные
$cup = $where . "AND `needdate` = $cratedate";//если есть фильрация по полю class запрос станет таким "SELECT * FROM users WHERE `user` = 'admin' AND `class` = 1 "
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
Тут важна не кнопка, а поле с датой
Точно так же и делается. Только внимательней с массивами, в которые все это передается, а то отправляете в пост массив, а получить хотите из гет
Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
получаю ошибку как на скрине переменная вроде передается вверху ее выводит текстов и саму и запрос который дописываеться $where, запись верная в mysql пишу все ок наверное я какой - то синтаксис не соблюдаю ?
$result = mysqli_query($connection, "SELECT * FROM users $where $wherecase");
while ($row = mysqli_fetch_array($result)):
$sum += $row['class'];
$sum2 += $row['type'];
/* $needdate = $_POST['needdate'];
$result = mysqli_query($connection, "SELECT * FROM users $where");
print_r($result);
$where = "WHERE `user` = 'admin'";
if($_POST['needdate']){
$class= ($_POST['needdate']) // в этой строчке фильтруем полученые через GET данные
$cup = $where . "AND `needdate` = $cratedate";//если есть фильрация по полю class запрос станет таким "SELECT * FROM users WHERE `user` = 'admin' AND `class` = 1 "
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
Каша у вас какая то непонятная. Выведите все в одном файле без всякой фильтрации, сделайте что бы работало и покажите код. А потом уже дальше двигайте. По вашей таблице вообще непонятно, что там где выводится
alezander
Отправлено: 21 Января, 2017 - 17:33:29
Новичок
Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
вот я вроде все расписал и скрины тоже ниже и кажется я понял в чем проблема только не знаю как ее описать WHERE `cratedate` = '' передаеться с двойной кавычкой в конце и получается в SQL запросе их попадет две что то типа SELECT * FROM users WHERE `cratedate` = '$needdate'" вопрос почему и как это можно по другому написать ?
$where=("WHERE `cratedate` = '$needdate'");//формирую дополнение к запросу sql где таблице ищю столбец с заголовком `cratedate` и в нем пытаюсь найти полученную переменную '$needdate'
print_r(' переменная 2 : '.$where);// вывожу визуально для себя этот запрос переменная 2 $where
$result=mysqli_query($connection,"SELECT * FROM users");//запрос на вывод данных из таблицы
<th><input type="submit" name="ondate" value="На дату"/></th><!--кнопка после которой начинаеться обработка-->
</form>
</tr>
<?php
if(isset($_POST['ondate']))//условия о кнопки если она нажата
{
$needdate=trim($_POST['needdate']);// приравниваяю данные из переменной
print_r('переменная 1 : '.$_POST['needdate']);// вывожу для себя визуально переменную переменная 1 $needdate
$where=("WHERE `cratedate` = '$needdate'");//формирую дополнение к запросу sql где таблице ищю столбец с заголовком `cratedate` и в нем пытаюсь найти полученную переменную '$needdate'
print_r(' переменная 2 : '.$where);// вывожу визуально для себя этот запрос переменная 2 $where
$result=mysqli_query($connection,"SELECT * FROM users");//запрос на вывод данных из таблицы
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.