Вывести нужные элементы из базы данных, отобранных по параметрам, вводимым пользователем - MySQL

Узнай цену своей работы

Формулировка задачи:

Добрый вечер, столкнулся с проблемой, что не знаю, как вывести на экран элементы из базы данных.
Листинг программы
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  4. </head>
  5. <body>
  6. <img id="myimg" align="right" width="150" height="220"><br> //просто окошко, где должна появляться информация
  7. <form action="1-3-1.php" method="GET"> //тут пользователь вводит число
  8. Информация по порядковому номеру: <input id="n1">
  9. <input type="button" value="Показать" onclick="submit()"><br> //кнопка
  10. </form>
  11. <?php //подключаюсь к БД
  12. $connection=mysql_connect("****", "****", "****");
  13. $db=mysql_select_db("db_****");
  14. mysql_set_charset("utf8");
  15. if(!$connection || !$db)
  16. {
  17. exit(mysql_error());
  18. }
  19. else
  20. {
  21. echo "Соединение произошло успешно";
  22. }
  23. $result1=mysql_query(" SELECT * FROM mend WHERE id='1' "); //получаю 4 переменных, создаю 4 массива с данными из
  24. $result2=mysql_query(" SELECT * FROM mend WHERE id='2' "); //соответствующих строчек
  25. $result3=mysql_query(" SELECT * FROM mend WHERE id='3' ");
  26. $result4=mysql_query(" SELECT * FROM mend WHERE id='4' ");
  27. mysql_close();
  28. $row1=mysql_fetch_array($result1);
  29. $row2=mysql_fetch_array($result2);
  30. $row3=mysql_fetch_array($result3);
  31. $row4=mysql_fetch_array($result4);
  32. ?>
  33.  
  34. <table width="80%" height="80%" border="1" cellpadding="0" cellspacing="0">
  35. <tr>
  36. <td width="50" height="50">
  37. <table width="100%" height="100%" border="1" cellpadding="2" cellspacing="1">
  38. <tr>
  39. <th> <?php echo $row1['id'] ?> </th>
  40. <th width="30" height="20" rowspan="2"><?php echo $row1['symbol'] ?></th>
  41. </tr>
  42. <tr>
  43. <th><?php echo $row1['weight'] ?></th>
  44. </tr>
  45. <tr>
  46. <th colspan="2"><?php echo $row1['name'] ?></th>
  47. </tr>
  48. <tr>
  49. <th colspan="2"><?php echo $row1['formula'] ?></th>
  50. </tr>
  51. </table>
  52. </td>
  53. <td width="50" height="50">
  54. <table width="100%" height="100%" border="1" cellpadding="2" cellspacing="1">
  55. <tr>
  56. <th> <?php echo $row2['id'] ?> </th>
  57. <th width="30" height="20" rowspan="2"><?php echo $row2['symbol'] ?></th>
  58. </tr>
  59. <tr>
  60. <th><?php echo $row2['weight'] ?></th>
  61. </tr>
  62. <tr>
  63. <th colspan="2"><?php echo $row2['name'] ?></th>
  64. </tr>
  65. <tr>
  66. <th colspan="2"><?php echo $row2['formula'] ?></th>
  67. </tr>
  68. </table>
  69. </td>
  70. //для примера 2 ячейки из таблицы, ячейки которой
  71. //заполнены информацией из БД
  72. </body>
  73. </html>
В чем заключается проблема: Я создал форму, где пользователь может ввести число. БД представляет из себя краткую таблицу Менделеева со столбцами порядковый номер, вес, формула, номера группы и периода и краткая сводка об элементе. Мне бы создать какое-нибудь окошко, куда по введенному числу (пока один параметр поиска, но можно же и несколько придумать, например вывести элемент из первой группы и первого периода (в идеале такой поиск бы и осуществить, а не только по одному параметру как порядковый номер)) выводилась бы информация. Я просто не знаю, как правильно перейти от введенного пользователем числа к переменной $result=mysql_query(" SELECT * FROM mend WHERE id=' тут как раз число, которое вводит пользователь ' "); , а после и к $row, с которой уже и работать для вывода. Помогите, пожалуйста, создать такое поле, чтобы по введенному числу извлекалась нужная строчка из БД, и эта информация выводилась бы в этом поле

Решение задачи: «Вывести нужные элементы из базы данных, отобранных по параметрам, вводимым пользователем»

textual
Листинг программы
  1. <?php
  2. // Выставляем уровень обработки ошибок
  3.   Error_Reporting(E_ALL & ~E_NOTICE);
  4.  
  5. //подключаюсь к БД
  6. $connection=mysql_connect("****", "****", "****");
  7. $db=mysql_select_db("db_****");
  8. mysql_set_charset("utf8");
  9. if(!$connection || !$db)
  10. {
  11. exit(mysql_error());
  12. }
  13. else
  14. {
  15. echo "Соединение произошло успешно";
  16. }
  17.   ?>
  18. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  19. <html xmlns="http://www.w3.org/1999/xhtml">
  20. <head>
  21. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  22. <title>Документ без названия</title>
  23. </head>
  24.  
  25. <body>
  26. <?php
  27. //Вывод формы
  28. echo "<form name=form method=get>";
  29. //$caption это описание для действия
  30. $caption = "Введите порядковый номер:  ";
  31. //Текстовое поле для вставки номера
  32. $tag = "<input
  33. type=\"text\"
  34. name=\"number\"
  35. value=\"".htmlspecialchars($_REQUEST['number'])."\"
  36. size=\"4\">";
  37.  
  38. //Теперь вывожу описание и текстовое поле
  39. echo $caption, $tag."<br />";
  40.  
  41. //Здесь вывожу кнопку
  42. echo "<input type=submit value=\"Найти\">";
  43.  
  44. echo "</form>";
  45.  
  46. //Проверяем передан ли параметр после нажатия кнопки
  47. if ($_GET['number'])
  48. {
  49.     //приводим к целому числу
  50.     $get = intval($_GET['number']);
  51.     $query ="SELECT * FROM mend WHERE id=$get";
  52.  
  53.     $tbl = mysql_query($query);
  54.         if(!$tbl) exit("Ошибка обращения к таблице<br \>{mysql_error()}<br \>$query");
  55.         $arr = array();
  56.         // Если имеется хотя бы один элемент,
  57. // заполняем массив $arr
  58.         if(mysql_num_rows($tbl))
  59.         {
  60.             $row1=mysql_fetch_array($tbl);
  61.             //while ($arr[]= mysql_fetch_array($tbl));
  62.        
  63. ?>
  64. <table width="50%" height="100%" border="1" cellpadding="2" cellspacing="1">
  65. <tr>
  66. <th> <?php echo $row1['id'] ?> </th>
  67. <th width="30" height="20" rowspan="2"><?php echo $row1['symbol'] ?></th>
  68. </tr>
  69. <tr>
  70. <th><?php echo $row1['weight'] ?></th>
  71.  
  72. </tr>
  73. <tr>
  74. <th colspan="2"><?php echo $row1['name'] ?></th>
  75. </tr>
  76. <tr>
  77. <th colspan="2"><?php echo $row1['formula'] ?></th>
  78. </tr>
  79. </table>
  80. <?php }
  81. }
  82. ?>
  83. </body>
  84. </html>

Объяснение кода листинга программы

  1. Устанавливаем уровень обработки ошибок
  2. Подключаемся к БД
  3. Выбираем базу данных
  4. Устанавливаем кодировку соединения
  5. Проверяем соединение с БД
  6. Выводим форму
  7. Получаем значение параметра из формы
  8. Проверяем корректность введенного значения
  9. Формируем SQL запрос
  10. Выполняем SQL запрос
  11. Проверяем наличие результатов запроса
  12. Выводим результаты запроса в виде таблицы
  13. Закрываем соединение с БД
  14. Закрываем сессию PHP
  15. Включаем отображение ошибок
  16. Выводим сообщение об ошибке и номер ошибки
  17. Выводим описание и текстовое поле для ввода номера
  18. Выводим кнопку Найти
  19. Проверяем, был ли передан параметр после нажатия кнопки
  20. Приводим полученное значение к целому числу
  21. Формируем SQL запрос с использованием переданного параметра
  22. Выполняем SQL запрос
  23. Проверяем наличие результатов запроса
  24. Выводим результаты запроса в виде таблицы
  25. Закрываем соединение с БД
  26. Закрываем сессию PHP

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы