Только для читателей Lifeexample возможно открыть интернет-магазин на Moguta.CMS со скидкой в 15%
PHP работа с базой данных (Часть 2)
Здравствуй уважаемый читатель блога LifeExample, пришло время написать продолжение к серии статей посвященных работе с базой данных. В этой публикации мы поговорим о таких вопросах:
- Как считать информацию из таблицы в базе?
- Как вывести считанную информацию?
- Как изменить записи в полях базы?
Каждый начинающий вебмастер обязательно и неизбежно столкнётся с этими вопросами. Умение оперировать такими действиями как чтение, запись и вывод данных из базы позволит сотворить любой функционал на сайте, к примеру, вы сможете организовать учетные записи пользователей, хранить и изменять их письма, заявки и комментарии, а также в автоматическом режиме выводить фотографии пользователей, которые празднуют день рождение в этот день. Полезные навыки, не правда ли? Конечно если ты, читатель, не собираешься профилироваться в веб программировании, то тебе все это не понадобится т.к. системы управления сайтом предоставляют просто шикарный набор возможностей, в том числе и перечисленных. Решать, полезна ли информация в статье или нет, безусловно только тебе читатель, но я настоятельно рекомендую с ней ознакомиться, ибо всегда полезно уметь делать все своими руками, и не ждать выхода очередного плагина.
Что то, я увлекся, а надо ведь уложиться в 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) мы разберем оставшиеся вопросы.
Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.
Комментарии
Спасибо, облазил не один сайт, но заработала база со скриптом только с этого.
Спасибо!!!!!!!!!!!!!!!!
+
Спасибо,статья очень помогла, но созрел другой вопрос, как реализовать вывод данных из нескольких таблиц базы?
Копайте в сторону JOIN и LEFT JOIN.
Огромнейшое спасибо…..наконец-то вывело инфу из базы в нужном виде, очень помогло)))))
Спасибо большое. Ваша статья мне очень помогла.
Спасибо!
Очень полезная информация и написано для «чайников», как я.
Информация из базы данных вывелась/ но самой таблицы как таковой не наблюдается. Как ее нарисовать?
Михаил саму таблицу можно нарисовать с помощью css если я не ошибаюсь
<?php
$host = "localhost";
$user = "Kirill";
$pwd = "a1b2c3d4f5";
$db = "new_base";
$conn = mysql_connect($host, $user, $pwd);
mysql_select_db($db, $conn);
$res = mysql_query("select * from `tablica`");
$table = "»;
while ($row = mysql_fetch_assoc($res))
{
$table .= «»;
$table .= «».$row[‘infa1’].»»;
$table .= «».$row[‘infa2’].»»;
$table .= «»;
}
$table .= » «;
echo $table;
?>
Здравствуйте!
На странице ничего не отображается, просто белый экран. Подскажите пожалуйста в чем проблема.
Пишет что баз данных не выбрана
$sql = «SELECT * FROM page»;
$result = mysql_query($sql) or die(mysql_error());
$table = «»;
while ($row = mysql_fetch_assoc($result))
{
$table .= «»;
$table .= «».$row[‘page_id’].»»;
$table .= «».$row[‘page_title’].»»;
$table .= «».$row[‘page_content’].»»;
$table .= «»;
}
$table .= » «;
echo $table;