Только для читателей Lifeexample возможно открыть интернет-магазин на Moguta.CMS со скидкой в 15%

<<< Добавление кнопки Yandex поделиться || Добавление кнопки Facebook >>>

PHP работа с базой данных (Часть 2)

28.10.2011
PHP работа с базой данных (Часть 2)

Здравствуй уважаемый читатель блога LifeExample, пришло время написать продолжение к серии статей посвященных работе с базой данных. В этой публикации мы поговорим о таких вопросах:

  1. Как считать информацию из таблицы в базе?
  2. Как вывести считанную информацию?
  3. Как изменить записи в полях базы?

Каждый начинающий вебмастер обязательно и неизбежно столкнётся с этими вопросами. Умение оперировать такими действиями как чтение, запись и вывод данных из базы позволит сотворить любой функционал на сайте, к примеру, вы сможете организовать учетные записи пользователей, хранить и изменять их письма, заявки и комментарии, а также в автоматическом режиме выводить фотографии пользователей, которые празднуют день рождение в этот день. Полезные навыки, не правда ли? Конечно если ты, читатель, не собираешься профилироваться в веб программировании, то тебе все это не понадобится т.к. системы управления сайтом предоставляют просто шикарный набор возможностей, в том числе и перечисленных. Решать, полезна ли информация в статье или нет, безусловно только тебе читатель, но я настоятельно рекомендую с ней ознакомиться, ибо всегда полезно уметь делать все своими руками, и не ждать выхода очередного плагина.

Что то, я увлекся, а надо ведь уложиться в 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 ленту блога.

Нравится

Комментарии

  • Серега

    Спасибо, облазил не один сайт, но заработала база со скриптом только с этого.

  • Алекс

    Спасибо!!!!!!!!!!!!!!!!

  • John

    Спасибо,статья очень помогла, но созрел другой вопрос, как реализовать вывод данных из нескольких таблиц базы?

  • Kot_Vanilin

    Огромнейшое спасибо…..наконец-то вывело инфу из базы в нужном виде, очень помогло)))))

  • Андрей

    Спасибо большое. Ваша статья мне очень помогла.

  • Artur

    Спасибо!
    Очень полезная информация и написано для «чайников», как я.

  • Михаил

    Информация из базы данных вывелась/ но самой таблицы как таковой не наблюдается. Как ее нарисовать?

    • илья

      Михаил саму таблицу можно нарисовать с помощью css если я не ошибаюсь

  • Kirill

    <?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;

  • Оставить комментарий

    Не отвечать

    Подписаться на комментарии к этой статье по RSS

    Яндекс.Метрика