Вывести нужные элементы из базы данных, отобранных по параметрам, вводимым пользователем - MySQL
Формулировка задачи:
Добрый вечер, столкнулся с проблемой, что не знаю, как вывести на экран элементы из базы данных.
В чем заключается проблема:
Я создал форму, где пользователь может ввести число.
БД представляет из себя краткую таблицу Менделеева со столбцами порядковый номер, вес, формула, номера группы и периода и краткая сводка об элементе.
Мне бы создать какое-нибудь окошко, куда по введенному числу (пока один параметр поиска, но можно же и несколько придумать, например вывести элемент из первой группы и первого периода (в идеале такой поиск бы и осуществить, а не только по одному параметру как порядковый номер)) выводилась бы информация.
Я просто не знаю, как правильно перейти от введенного пользователем числа к переменной $result=mysql_query(" SELECT * FROM mend WHERE id=' тут как раз число, которое вводит пользователь ' "); , а после и к $row, с которой уже и работать для вывода.
Помогите, пожалуйста, создать такое поле, чтобы по введенному числу извлекалась нужная строчка из БД, и эта информация выводилась бы в этом поле
<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>
Решение задачи: «Вывести нужные элементы из базы данных, отобранных по параметрам, вводимым пользователем»
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>
Объяснение кода листинга программы
- Устанавливаем уровень обработки ошибок
- Подключаемся к БД
- Выбираем базу данных
- Устанавливаем кодировку соединения
- Проверяем соединение с БД
- Выводим форму
- Получаем значение параметра из формы
- Проверяем корректность введенного значения
- Формируем SQL запрос
- Выполняем SQL запрос
- Проверяем наличие результатов запроса
- Выводим результаты запроса в виде таблицы
- Закрываем соединение с БД
- Закрываем сессию PHP
- Включаем отображение ошибок
- Выводим сообщение об ошибке и номер ошибки
- Выводим описание и текстовое поле для ввода номера
- Выводим кнопку
Найти - Проверяем, был ли передан параметр после нажатия кнопки
- Приводим полученное значение к целому числу
- Формируем SQL запрос с использованием переданного параметра
- Выполняем SQL запрос
- Проверяем наличие результатов запроса
- Выводим результаты запроса в виде таблицы
- Закрываем соединение с БД
- Закрываем сессию PHP