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

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

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

Добрый вечер, столкнулся с проблемой, что не знаю, как вывести на экран элементы из базы данных.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<img id="myimg" align="right" width="150" height="220"><br> //просто окошко, где должна появляться информация
<form action="1-3-1.php" method="GET">  //тут пользователь вводит число
Информация по порядковому номеру: <input id="n1">
<input type="button" value="Показать" onclick="submit()"><br> //кнопка
</form>
 
<?php                                                                         //подключаюсь к БД
 $connection=mysql_connect("****", "****", "****");
 $db=mysql_select_db("db_****");
 mysql_set_charset("utf8");
 if(!$connection || !$db)
    {
    exit(mysql_error());
    }
 else 
 {
 echo "Соединение произошло успешно";
 }
 
 $result1=mysql_query(" SELECT * FROM mend WHERE id='1' ");  //получаю 4 переменных, создаю 4 массива с данными из
 $result2=mysql_query(" SELECT * FROM mend WHERE id='2' ");  //соответствующих строчек
 $result3=mysql_query(" SELECT * FROM mend WHERE id='3' ");
 $result4=mysql_query(" SELECT * FROM mend WHERE id='4' ");
 mysql_close();
 $row1=mysql_fetch_array($result1);
 $row2=mysql_fetch_array($result2);
 $row3=mysql_fetch_array($result3);
 $row4=mysql_fetch_array($result4);
?>

<table width="80%" height="80%" border="1" cellpadding="0" cellspacing="0">
    <tr>
    <td width="50" height="50">
     <table width="100%" height="100%" border="1" cellpadding="2" cellspacing="1">
      <tr>
    <th> <?php echo $row1['id'] ?> </th>
        <th width="30" height="20" rowspan="2"><?php echo $row1['symbol'] ?></th>
      </tr>
      <tr>
    <th><?php echo $row1['weight'] ?></th>
    
      </tr>
      <tr>
    <th colspan="2"><?php echo $row1['name'] ?></th>
      </tr>
      <tr>
    <th colspan="2"><?php echo $row1['formula'] ?></th>
      </tr>
     </table>
    </td>
    
    <td width="50" height="50">
     <table width="100%" height="100%" border="1" cellpadding="2" cellspacing="1">
      <tr>
    <th> <?php echo $row2['id'] ?> </th>
        <th width="30" height="20" rowspan="2"><?php echo $row2['symbol'] ?></th>
      </tr>
      <tr>
    <th><?php echo $row2['weight'] ?></th>
    
      </tr>
      <tr>
    <th colspan="2"><?php echo $row2['name'] ?></th>
      </tr>
      <tr>
    <th colspan="2"><?php echo $row2['formula'] ?></th>
      </tr>
     </table>
    </td>
       
                                                                                   //для примера 2 ячейки из таблицы, ячейки которой 
                                                                                   //заполнены информацией из БД
 
</body>
</html>
В чем заключается проблема: Я создал форму, где пользователь может ввести число. БД представляет из себя краткую таблицу Менделеева со столбцами порядковый номер, вес, формула, номера группы и периода и краткая сводка об элементе. Мне бы создать какое-нибудь окошко, куда по введенному числу (пока один параметр поиска, но можно же и несколько придумать, например вывести элемент из первой группы и первого периода (в идеале такой поиск бы и осуществить, а не только по одному параметру как порядковый номер)) выводилась бы информация. Я просто не знаю, как правильно перейти от введенного пользователем числа к переменной $result=mysql_query(" SELECT * FROM mend WHERE id=' тут как раз число, которое вводит пользователь ' "); , а после и к $row, с которой уже и работать для вывода. Помогите, пожалуйста, создать такое поле, чтобы по введенному числу извлекалась нужная строчка из БД, и эта информация выводилась бы в этом поле

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

textual
Листинг программы
<?php
// Выставляем уровень обработки ошибок
  Error_Reporting(E_ALL & ~E_NOTICE);
  
//подключаюсь к БД
$connection=mysql_connect("****", "****", "****");
$db=mysql_select_db("db_****");
mysql_set_charset("utf8");
if(!$connection || !$db)
{
exit(mysql_error());
}
else 
{
echo "Соединение произошло успешно";
}
  ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
 
<body>
<?php
//Вывод формы 
echo "<form name=form method=get>";
//$caption это описание для действия
$caption = "Введите порядковый номер:  ";
//Текстовое поле для вставки номера 
$tag = "<input
type=\"text\"
name=\"number\"
value=\"".htmlspecialchars($_REQUEST['number'])."\"
size=\"4\">";
 
//Теперь вывожу описание и текстовое поле
echo $caption, $tag."<br />";
 
//Здесь вывожу кнопку 
echo "<input type=submit value=\"Найти\">";
 
echo "</form>";
 
//Проверяем передан ли параметр после нажатия кнопки
if ($_GET['number'])
{
    //приводим к целому числу
    $get = intval($_GET['number']);
    $query ="SELECT * FROM mend WHERE id=$get";
 
    $tbl = mysql_query($query);
        if(!$tbl) exit("Ошибка обращения к таблице<br \>{mysql_error()}<br \>$query");
        $arr = array();
        // Если имеется хотя бы один элемент,
// заполняем массив $arr
        if(mysql_num_rows($tbl))
        {
            $row1=mysql_fetch_array($tbl);
            //while ($arr[]= mysql_fetch_array($tbl));
        
?>
<table width="50%" height="100%" border="1" cellpadding="2" cellspacing="1">
<tr>
<th> <?php echo $row1['id'] ?> </th>
<th width="30" height="20" rowspan="2"><?php echo $row1['symbol'] ?></th>
</tr>
<tr>
<th><?php echo $row1['weight'] ?></th>
 
</tr>
<tr>
<th colspan="2"><?php echo $row1['name'] ?></th>
</tr>
<tr>
<th colspan="2"><?php echo $row1['formula'] ?></th>
</tr>
</table>
<?php }
}
?>
</body>
</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
Похожие ответы