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 :: фильтрация по определенным критериям и вывод в виде таблицы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
alezander
Отправлено: 18 Января, 2017 - 22:31:15
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




Хочу сделать таблицу с выводом и вводом данных по пользователям и с сортировкой(фильтрацией) + чтобы данную в данную таблицу можно было добавлять и убирать значения. Таблицу сделал убирать и добавлять тоже, а вот с фильтрацией застрял Пробовал через формы подключать файл с php не получилось. Я сам понимаю что надо скорее всего критерии отбора выносить в другую часть(другу форму php или hmtl). Но не пойму как правильно передать данные из одной формы php в другую передавая данные для фильтрации.

Спойлер (Отобразить)

Прикреплено изображение (Нажмите для увеличения)
3.jpg

(Отредактировано автором: 18 Января, 2017 - 22:35:27)

 
 Top
teleoperator27
Отправлено: 19 Января, 2017 - 03:38:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




Фильтрация у вас в самом запросе. Через GET получайте нужный параметр и подставляйте его в WHERE. Только фильтровать сам get-параметр не забывайте, что бы инъекций и всего такого не было. Упрощенно так

запрос:

ну а до запроса получаем и обрабатываем данные
PHP:
скопировать код в буфер обмена
  1. $where = "WHERE `user` = 'admin'";
  2. if($_GET['class']){
  3. $class= intval($_GET['class']) // в этой строчке фильтруем полученые через GET данные
  4. $where = $where  . "AND `class` = $class";//если есть фильрация по полю class запрос станет таким  "SELECT * FROM users WHERE `user` = 'admin' AND `class` = 1 "
  5. }

и так далее типа такого
 
My status
 Top
alezander
Отправлено: 19 Января, 2017 - 19:18:00
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




Спасибо это я примерно понял я не пойму как подвязать кнопку к примеру у меня есть кнопка "на дату"
CODE (htmlphp):
скопировать код в буфер обмена
  1.                 <td><input type="date" name="needdate" value="<?php echo $_POST['needdate']?>"/></td>
  2.                 <th><input type="submit" name="ondate" value="На дату"/></th>
чтобы подстановка данных тойже
PHP:
скопировать код в буфер обмена
  1. $where = "WHERE `needdate` = 'needdate'";
проходило по ее нажатию.

Спойлер (Отобразить)

(Отредактировано автором: 19 Января, 2017 - 19:25:01)

 
 Top
teleoperator27
Отправлено: 19 Января, 2017 - 19:35:20
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




Тут важна не кнопка, а поле с датой
Точно так же и делается. Только внимательней с массивами, в которые все это передается, а то отправляете в пост массив, а получить хотите из гет
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $needdate = trim($_POST['needdate']);
  4.  
  5. $where = !empty($needdate) ? "AND `needdate` = '" . $needdate . "'"  : '';
  6.  
  7. $result = mysqli_query($connection, "SELECT * FROM users WHERE `user` =  admin' " . $where . "");
  8.  
  9.     while ($row = mysqli_fetch_array($result)):
  10.     ///бла бла бла
  11. endwhile;
  12. ?>

типа так

(Отредактировано автором: 19 Января, 2017 - 20:18:41)

 
My status
 Top
alezander
Отправлено: 21 Января, 2017 - 14:49:04
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




получаю ошибку как на скрине переменная вроде передается вверху ее выводит текстов и саму и запрос который дописываеться $where, запись верная в mysql пишу все ок наверное я какой - то синтаксис не соблюдаю ?

та часть в которую не пойму проблему
Спойлер (Отобразить)


весь код
Спойлер (Отобразить)

Прикреплено изображение (Нажмите для увеличения)
1.jpg

(Отредактировано автором: 21 Января, 2017 - 14:50:57)

 
 Top
teleoperator27
Отправлено: 21 Января, 2017 - 15:23:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




Каша у вас какая то непонятная. Выведите все в одном файле без всякой фильтрации, сделайте что бы работало и покажите код. А потом уже дальше двигайте. По вашей таблице вообще непонятно, что там где выводится
 
My status
 Top
alezander
Отправлено: 21 Января, 2017 - 17:33:29
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




вот я вроде все расписал и скрины тоже ниже и кажется я понял в чем проблема только не знаю как ее описать WHERE `cratedate` = '' передаеться с двойной кавычкой в конце и получается в SQL запросе их попадет две что то типа SELECT * FROM users WHERE `cratedate` = '$needdate'" вопрос почему и как это можно по другому написать ?

Спойлер (Отобразить)


почисти код и добавил описание
Спойлер (Отобразить)


teleoperator27 большое спасибо я понял что надо использовать конкатенацию как вы показали выше.
Прикреплено изображение (Нажмите для увеличения)
3.jpg

(Отредактировано автором: 21 Января, 2017 - 17:57:46)

 
 Top
teleoperator27
Отправлено: 21 Января, 2017 - 18:45:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




PHP:
скопировать код в буфер обмена
  1. $where = ("WHERE `cratedate` = '$needdate'")


зачем тут скобки?

PHP:
скопировать код в буфер обмена
  1. $where = "WHERE `cratedate` = '" . $needdate ."'";


запрос будет

PHP:
скопировать код в буфер обмена
  1. $result = mysqli_query($connection, "SELECT * FROM users WHERE `cratedate`  = 'что пришло' ");

(Отредактировано автором: 21 Января, 2017 - 18:46:49)

 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB