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 :: Запрос из БД MYSQL с помощью HTML формы

 PHP.SU

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


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

> Описание: Отбор по выбранному столбцу
Oak
Отправлено: 24 Марта, 2014 - 01:29:15
Post Id



Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2014  


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




Друзья, помогите, пожалуйста!
Есть таблица, в которой столбцы: metro, name, adress, phone
Есть PHP-код, который отлично работает при вставке в веб-страницу, но выводит ВСЕ строки таблицы:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $db_host = 'server.mysql';
  3. $db_name = 'database';
  4. $db_username = 'xxx';
  5. $db_password = 'xxx';
  6. $db_table = 'cinema';
  7. $connect_to_db = mysql_connect($db_host, $db_username, $db_password) or die("Could not connect: " . mysql_error());
  8. mysql_select_db($db_name, $connect_to_db) or die("Could not select DB: " . mysql_error());
  9. mysql_query('SET names "utf8"');
  10. $qr_result = mysql_query("SELECT * FROM " .$db_table, $connect_to_db);
  11. echo '<table border="1">';
  12. echo '<thead>';
  13. echo '<tr>';
  14. echo '<th>Метро</th>';
  15. echo '<th>Название</th>';
  16. echo '<th>Адрес</th>';
  17. echo '<th>Телефон</th>';
  18. echo '</tr>';
  19. echo '</thead>';
  20. echo '<tbody>';
  21. while($data = mysql_fetch_array($qr_result))
  22. {
  23. echo '<tr>';
  24. echo '<td>' . $data['metro'] . '</td>';
  25. echo '<td>' . $data['name'] . '</td>';
  26. echo '<td>' . $data['adress'] . '</td>';
  27. echo '<td>' . $data['phone'] . '</td>';
  28. echo '</tr>';
  29. }
  30. echo '</tbody>';
  31. echo '</table>';
  32. mysql_close($connect_to_db);
  33. ?>


Хочется добавить форму для отбора по станции метро:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <form aсtion="" method="post">
  3. <select name="selectmetro" >
  4. <option value="">Выберите станцию метро</option>
  5. <option value="001">Авиамоторная</option>
  6. <option value="002">Автозаводская</option>
  7. <option value="003">Академическая</option>
  8. <option value="004">Александровский сад</option>
  9. </select>
  10. <input type=submit value="Найти кинотеатр">
  11. </form>
  12. </html>


Как их связать между собой, чтобы PHP-запрос формировался в таком виде (имел такой смысл):
PHP:
скопировать код в буфер обмена
  1. $qr_result = mysql_query("SELECT * FROM .$db_table WHERE metro= selectmetro, $connect_to_db);

Где metro - это столбец в базе, где станции метро заменены номерами, а selectmetro - это выбранная в html-форме станция метро
Заранее благодарю.







Разобрался!))))))
П.С. В PHP я новичок...

CODE (html):
скопировать код в буфер обмена
  1. <form aсtion="" method="post">
  2. <select name="selectmetro" >
  3. <option value="">Выберите станцию метро</option>
  4. <option value="001">Авиамоторная</option>
  5. <option value="002">Автозаводская</option>
  6. <option value="003">Академическая</option>
  7. <option value="004">Александровский сад</option>
  8. </select>
  9. <input type=submit value="Найти кинотеатр">
  10. </form>

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $db_host = 'server.mysql';
  3. $db_name = 'database';
  4. $db_username = 'xxx';
  5. $db_password = 'xxx';
  6. $db_table = 'cinema';
  7.  
  8. $connect_to_db = mysql_connect($db_host, $db_username, $db_password) or die("Could not connect: " . mysql_error());
  9.  
  10. mysql_select_db($db_name, $connect_to_db) or die("Could not select DB: " . mysql_error());
  11.  
  12. mysql_query('SET names "utf8"');

Добавил эту строчку:

Исправил запрос:
PHP:
скопировать код в буфер обмена
  1. $qr_result = mysql_query("SELECT * FROM  $db_table WHERE metro = $sm", $connect_to_db);

Далее без изменений:
PHP:
скопировать код в буфер обмена
  1. echo '<table border="1" width="728px">';
  2. echo '<thead>';
  3. echo '<tr>';
  4. echo '<th>Метро</th>';
  5. echo '<th>Название</th>';
  6. echo '<th>Адрес</th>';
  7. echo '<th>Телефон</th>';
  8. echo '</tr>';
  9. echo '</thead>';
  10. echo '<tbody>';
  11. while($data = mysql_fetch_array($qr_result))
  12. {
  13. echo '<tr>';
  14. echo '<td>' . $data['metro'] . '</td>';
  15. echo '<td>' . $data['name'] . '</td>';
  16. echo '<td>' . $data['adress'] . '</td>';
  17. echo '<td>' . $data['phone'] . '</td>';
  18. echo '</tr>';
  19. }
  20. echo '</tbody>';
  21. echo '</table>';
  22.  
  23. mysql_close($connect_to_db);
  24. ?>

(Отредактировано автором: 24 Марта, 2014 - 03:16:59)

 
 Top
LIME
Отправлено: 24 Марта, 2014 - 05:18:37
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




SQL injection
 
 Top
Oak
Отправлено: 24 Марта, 2014 - 07:00:05
Post Id



Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2014  


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




LIME пишет:
SQL injection

Поясните, пожалуйста!

- Пользователь БД, который имеет право только на чтение. На всякий случай отдельного создал, без права что-то куда-то записывать.

(Отредактировано автором: 24 Марта, 2014 - 07:02:05)

 
 Top
LIME
Отправлено: 24 Марта, 2014 - 07:04:25
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB