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]   

> Описание: Написание фильтра выборки пользователей, из базы данных , по определенным параметрам.
Алтенрион
Отправлено: 11 Ноября, 2012 - 05:14:07
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


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




Собственно, сразу начну с конкретики.

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

На веб странице планируется разместить 11 веб форм, которые будут передавать введенные данные php обработчику. В php обработчике должна выполняться сама выборка пользователей, согласно критериям переданным из веб форм.

Далее все выбранные данные будут выводиться в определенном блоке для просмотра.


Собственно вопросы:

    - правильно ли я написал соответствующий php обработчик с точки зрения логики php и SQL ?
    - где могут возникнуть явные ошибки или косвенные?



Привожу сам код обработчика (он еще не дописан, но все же) :


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. //присваиваем полученные данные переменным
  4. if (isset($_POST['id'])) { $id = $_POST['id'];
  5. if (isset($_POST['sername'])) { $sername = $_POST['sername'];
  6. if (isset($_POST['name'])) { $name=$_POST['name'];
  7. if (isset($_POST['firstname'])) { $firstname=$_POST['firstname'];
  8. if (isset($_POST['date'])) { $date=$_POST['date'];
  9. if (isset($_POST['email'])) { $email=$_POST['email'];
  10. if (isset($_POST['telephone'])) { $telephone=$_POST['telephone'];
  11. if (isset($_POST['position'])) { $position=$_POST['position'];
  12. if (isset($_POST['who'])) { $who=$_POST['who']; }
  13. if (isset($_POST['interests'])) { $interests=$_POST['interests']; }
  14. if (isset($_POST['gt'])) { $gt=$_POST['gt']; }
  15.  
  16.  
  17. // добавляем SQL лексику к параметрам фильтра
  18.  
  19. $id_s = "`id` LIKE '%".$id."%'";
  20. $sername_s = "`sername` LIKE '%".$sername."%'";
  21. $name_s = "`name` LIKE '%".$name."%'";
  22. $firstname_s = "`firstname` LIKE '%".$firstname."%'";
  23. $date_s = "`date` LIKE '%".$date."%'";
  24. $email_s = "`email` LIKE '%".$email."%'";
  25. $telephone_s = "`telephone` LIKE '%".$telephone."%'";
  26. $position_s = "`position` LIKE '%".$position."%'";
  27. $who_s = "`who` LIKE '%".$who."%'";
  28. $interests_s = "`interests` LIKE '%".$interests."%'";
  29. $gt_s = "`gt` LIKE '%".$gt."%'";
  30.        
  31.  
  32.        
  33.  // подключаемся к базе
  34.  
  35.  include ("bd.php");
  36.  
  37.  mysql_query("SET NAMES utf8");
  38.  
  39.  
  40.  // делаем запрос на выборку данных из базы по указанным параметрам
  41.  
  42. $result = mysql_query ("SELECT * FROM users WHERE $id_s AND $sername_s AND $name_s AND $firstname_s AND $date_s AND $email_s AND $telephone_s AND $position_s AND $who_s AND $interests_s AND $gt_s");
  43.  
  44. while($row=mysql_fetch_array($result))  // берем результаты из каждой строки
  45. {
  46. echo ''
  47. echo '<p><b>№=</b>'.$num.'<br>
  48. <b> Дата = </b>'.$row['create_date'].'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  49. <b> ФИО:  </b>'.$row['sername'].'&nbsp;'.$row['name'].'&nbsp;'.$row['firstname'].'&nbsp;<br><br>
  50. <b> Дата рождения:  </b>&nbsp;'.$row['date'].'&nbsp;&nbsp;&nbsp;&nbsp;
  51. <b> email:  </b>&nbsp;'.$row['email'].'&nbsp;&nbsp;&nbsp;&nbsp;<br>
  52. <b> Телефон:  </b>&nbsp;'.$row['telephone']. '<br>
  53. <b> Место работы/учебы:  </b>&nbsp;'.$row['position'].'&nbsp;<br>
  54. <b> Статус:  </b>&nbsp;'.$row['who']. '&nbsp;<br>
  55. <b> Интерсы:  </b>&nbsp;'.$row['interests'].'<br><br>
  56. <b> Мероприятия: </b>&nbsp;'.$row['gt'].'</p><br><br>';// выводим данные
  57. $num++;
  58. }
  59.  
  60.  
  61.  





К сожалению вопрос очень срочный , и работу над ним веду в реальном времени. Убедительная просьба поделиться любыми полезными мыслями и идеями.

Всем советам/подсказкам/исправлениям буду очень благодарен и признателен. Так как я не осмелюсь назвать себя опытным программистом на php, любой новый опыт и любой новый метод, не применявшийся мною ранее, является ценнейшими.

Заранее благодарен Растерялся

(Отредактировано автором: 11 Ноября, 2012 - 06:09:36)

 
 Top
AlexAnder
Отправлено: 11 Ноября, 2012 - 07:57:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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





PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['id'])) { $id = $_POST['id'];
  2. ...
  3. $id_s = "`id` LIKE '%".$id."%'";

notice пишет:
Notice: Undefined variable: id in script.php on line 3

error пишет:
Parse error: syntax error, unexpected $end in script.php on line 1

Подмигивание

(Отредактировано автором: 11 Ноября, 2012 - 08:05:17)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
Алтенрион
Отправлено: 11 Ноября, 2012 - 08:27:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


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




AlexAnder пишет:


notice пишет:
Notice: Undefined variable: id in script.php on line 3



error пишет:
Parse error: syntax error, unexpected $end in script.php on line 1


Подмигивание



notice - Вызван тем что в скрипт ничего не передано и скрипт приведенный выше является вырезкой, или прототипом создаваемого в данный момент фильтра.

error - Вызван тем что пропущена скобка "}"

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['id'])) { $id = $_POST['id'];}
  3. ...
  4. $id_s = "`id` LIKE '%".$id."%'";
  5.  
  6.  




Я предпочел бы инфу по менее банальным вещам, так как не очень разбираюсь в скрещиванию php и SQL запросов.

Вот что меня больше интересует, так это часть кода где совмещаю SQL и php:

Цитата:

$id_s = "`id` LIKE '%".$id."%'";
$sername_s = "`sername` LIKE '%".$sername."%'";

...


$result = mysql_query ("SELECT * FROM users WHERE $id_s AND $sername_s AND $name_s AND $firstname_s AND $date_s AND $email_s AND $telephone_s AND $position_s AND $who_s AND $interests_s AND $gt_s");




Интересует можно ли так делать? И какие есть альтернативы. В написанном коде я подразумевал, что из форм ввода данных будет передаваться какое либо значение, по которому будет выполняться отсев пользователей. По принципу "похоже на" или "содержит такое данное", иными словами :

Цитата:

CODE (SQL):
скопировать код в буфер обмена
  1. $query = "SELECT * FROM `my_sql_table` where surname like '%дор%'";
  2.  


(_http://php.su/articles/?cat=phpdb&page=025 _ (п.4))

 
 Top
Алтенрион
Отправлено: 11 Ноября, 2012 - 12:34:45
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Сент. 2012  
Откуда: Москва, Россия


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




ап
 
 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