Автор статьи: Головин Андрей
Наиболее часто востребованной задачей при работе с базами данных является вывод результатов выборки или всего содержимого базы на экран. Рассмотрим, как это реализуется на примере сервера MySQL и языка PHP.
Прежде всего, рассмотрим, как получить структуру таблицы. Для этого в PHP существует функция: mysql_list_fields(string database_name, string table_name, int [link_identifier]). Параметр database_name — наименование базы данных, содержащей нашу таблицу. table_name — наименование таблицы, данные о полях которой мы пытаемся получить. int [link_identifier] — необязательный параметр, указывающий активное соединение.
Результат работы данной функции может быть использован в качестве параметра в следующих функциях:
mysql_field_flags()
mysql_field_len()
mysql_field_name()
and
mysql_field_type()
Для того, чтобы узнать, сколько полей содержит данная таблица, необходимо использовать функцию mysql_num_fields(int result). Единственный обязательный параметр result, содержит результаты работы функции mysql_list_fields().
Для получения имен полей используем функцию mysql_fiels_name(int result, int field_index). result — результат работы функции mysql_list_fields(), а field_index — порядковый индекс поля. Например, mysql_field_name($res,1) — имя первого поля в таблице
Соединим все это вместе, предварительно установив соединение с
базой данных, как я уже описывал:
mysql_connect(«yourhost»,»user»,»password»);
mysql_select_db(«database»);
$res = mysql_list_fields(«database»,»table»);
echo «<TABLE BORDER=1>»;
echo «<TR>»;
for ($i = 0; $i < mysql_num_fields($res); $i++) {
echo «<TH>»;
echo mysql_field_name($res,$i);
echo «</TH>»;
}
Таким образом, мы получили «шапку» таблицы для вывода результатов. Необходимо заметить, что я подразумеваю, что мы не знаем ни количества, ни наименований полей таблицы. В большинстве случаев разработчику известна эта информация. Но нам важно разобраться в основных принципах, а конкретные случаи вы сможете реализовать сами.
Теперь перейдем к выводу содержания таблицы. Сначала необходимо выполнить запрос к базе данных. Запрос должен выглядеть так: SELECT * FROM tablename. Как посылать запросы к базам данных подробно описано в опыте «Создание системы Совет Дня». Код будет выглядеть следующим образом:
$sql = «SELECT * FROM users»;
$res = mysql_query($sql);
$fields = mysql_num_rows($res);
while ($row = mysql_fetch_row($res)) {
echo «<TR>»;
for ($i = 0; $i < $fields; $i++) {
echo «<TD>».$row[$i].»</TD>»;
}
echo «</TR>»;
}
echo «</TR></TABLE>»;
Результатом работы этого скрипта будет, примерно, следующая таблица:
name | |
---|---|
John | john@world.org |
Kate | cat@somewhere.com |
William | bg@microsoft.com |
Andrew | exper@inbox.ru |
В следующем опыте рассмотрим как организовать постраничный вывод результатов.