PHP работа с базой данных (Часть 2)
Здравствуй уважаемый читатель блога,
пришло время написать продолжение к серии статей посвященных работе с
базой данных. В этой публикации мы поговорим о таких вопросах:
- Как считать информацию из таблицы в базе?
- Как вывести считанную информацию?
- Как изменить записи в полях базы?
Каждый начинающий вебмастер обязательно и неизбежно столкнётся с
этими вопросами. Умение оперировать такими действиями как чтение, запись
и вывод данных из базы позволит сотворить любой функционал на сайте, к
примеру, вы сможете организовать учетные записи пользователей, хранить и
изменять их письма, заявки и комментарии, а также в автоматическом
режиме выводить фотографии пользователей, которые празднуют день
рождение в этот день. Полезные навыки, не правда ли?
Конечно если ты, читатель, не собираешься профилироваться в веб
программировании, то тебе все это не понадобится т.к. системы управления
сайтом предоставляют просто шикарный набор возможностей, в том числе и
перечисленных. Решать, полезна ли информация в статье или нет,
безусловно только тебе читатель, но я настоятельно рекомендую с ней
ознакомиться, ибо всегда полезно уметь делать все своими руками, и не
ждать выхода очередного плагина.
Что то, я увлекся, а надо ведь уложиться в 3000-4000 знаков для увеличения процента релевантности статьи, поэтому перейдем к делу:
Как считать информацию из таблицы в базе?
В предыдущей части статьи мы рассмотрели функцию выполнения запросов mysql_query(),
с помощью которой можно оперировать данными. Для того чтобы получить
информацию из таблиц мы составим MySQL запрос выборки, выполним его
функцией mysql_query() и запишем с переменную для дальнейшей работы с полученной информацией:
Запись информации из таблицы БД в переменную
1 2 3
| <?php
$result=mysql_query("SELECT * FROM users");
?> |
Теперь переменная $result содержит в себе всю информацию из таблицы myTable. Выведем полученные данные в виде HTML таблицы.
Как вывести считанную информацию на страницу?
Сначала приведу код а потом разбиремся
Вывод MySQL таблицы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
$sql = "SELECT * FROM users";
$result = mysql_query($sql) or die(mysql_error());
$table = "<table>";
while ($row = mysql_fetch_assoc($result))
{
$table .= "<tr>";
$table .= "<td>".$row['id']."</td>";
$table .= "<td>".$row['login']."</td>";
$table .= "<td>".$row['email']."</td>";
$table .= "</tr>";
}
$table .= "</table> ";
echo $table;
?> |
Для того чтобы информация из БД при выводе выглядела действительно
как табличка, и ее было удобно читать, в коде мы заводим переменную $table, в которую будем записывать HTML код по мере считывания полученной информации. Используя цикл while, мы построчно будем создавать HTML таблицу, считывая поочередно все строки из переменной $result. Так как переменная $result содержит в себе таблицу из базы данных, используем специальную функцию mysql_fetch_assoc(),
она возвращает текущую строку таблицы в виде ассоциативного массива,
ключами элементов которого будут являться названия полей, а значениями
записи этих полей. Полученную строку в виде массива мы запишем в
переменную $row, а в теле цикла сможем запросто
получить значение полей текущей строки, дополнив ими код HTML таблицы.В
данном примере мы выводим поля id, login, и email. Пока переменная $result
будет заполняться строками, мы будем их заносить в код будущей таблицы,
которую собираемся вывести. Как только мы прочтем все строки из таблицы
базы данных, нам останется лишь дополнить переменную $table закрывающим HTML тегом </table>. Теперь можно спокойно вывести полученную таблицу на страницу обычным выводом текстовой переменной echo $table;
Внимание! Очень часто новички сталкиваются с проблемой вывода
информации из таблицы в нужной кодировке. Скорее всего, если вы просто
скопируете вышеприведенный код, а в таблице будут находиться
"разноязычные” записи, то в результате на странице вы можете получить
"злые кракозябры” вместо читаемой информации. Для того чтобы избежать
данной проблемы нужно выполнить один SQL запрос:
1
| mysql_query('SET names "utf8"'); |
если ничего не изменилось , то читайте статью о кодировке страниц.
Вывод MySQL таблицы с использованием list()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
$sql = "SELECT * FROM users";
$result = mysql_query($sql) or die(mysql_error());
$table = "<table>";
while (list($id, $login, $email) = mysql_fetch_assoc($result))
{
$table .= "<tr>";
$table .= "<td>".$id."</td>";
$table .= "<td>".$login."</td>";
$table .= "<td>".$email."</td>";
$table .= "</tr>";
}
$table .= "</table> ";
echo $table;
?> |
В данном примере используется функция list() , которая позволяет еще в условие задать соответствие переменным и избежать длинных конструкций в последствии, таких как $row['email'].
Как изменить записи в полях базы?
Тут все совсем просто, и не замысловато, для этого нам всего лишь нужно будет выполнить MySQL запрос с помощью mysql_query().
Пример изменения редактирования данных БД
1
| mysql_query("UPDATE user SET login = 'login'") |
С чтением, записью и выводом информации из базы мы разобрались, если у
тебя читатель остались вопросы задавай их в комментариях. В следующей
части PHP работа с базой данных (Часть 3) мы разберем оставшиеся вопросы.
|