Получение списка полей таблицы
Чтобы получить список полей таблицы, необходимо воспользоваться командой PHP - mysql_list_fields.
Синтаксис mysql_list_fields
ресурс mysql_list_fields ( строка database_name, строка table_name [, ресурс link_identifier])Эта функция возвращает список полей в таблице table_name в базе данных database_name. Выбирать базу данных нам было необязательно, но это пригодится позже. Результат работы этой функции - переменная типа ресурс - ссылка, которую можно использовать для получения информации о полях таблицы, включая их названия, типы и флаги.
Функция mysql_field_name возвращает имя поля, полученного в результате выполнения запроса. Функция mysql_field_len возвращает длину поля. Функция mysql_field_type возвращает тип поля, а функция mysql_field_flags возвращает список флагов поля, записанных через пробел. Типы поля могут быть int, real, string, blob и т.д. Флаги могут быть not_null, primary_key, unique_key, blob, auto_increment и т.д.
Синтаксис у всех этих команд одинаков:
строка mysql_field_name ( ресурс result, целое field_offset)строка mysql_field_type ( ресурс result, целое field_offset)строка mysql_field_flags ( ресурс result, целое field_offset)строка mysql_field_len ( ресурс result, целое field_offset)Здесь result - это идентификатор результата запроса (например, запроса, отправленного функциями mysql_list_fields или mysql_query (о ней будет рассказано позднее)), а field_offset - порядковый номер поля в результате.
То, что возвращают функции типа mysql_list_fields или mysql_query, представляет собой таблицу, а точнее, указатель на нее. Чтобы получить из этой таблицы конкретные значения, нужно задействовать специальные функции, которые построчно читают эту таблицу. К таким функциям и относятся mysql_field_name и т.п. Чтобы перебрать все строки в таблице результата выполнения запроса, нужно знать число строк в этой таблице. Команда mysql_num_rows(ресурс result) возвращает число строк во множестве результатов result.
Чтобы получить список полей таблицы Artifacts (коллекция экспонатов), используем скрипт:
<?$conn = mysql_connect( "localhost","nina","123")or die("Невозможно установить соединение: ". mysql_error());echo "Соединение установлено";mysql_select_db("book");$list_f = mysql_list_fields ( "book","Artifacts",$conn); $n = mysql_num_fields($list_f);for($i=0;$i<$n; $i++){ $type = mysql_field_type($list_f, $i); $name_f = mysql_field_name($list_f,$i); $len = mysql_field_len($list_f, $i); $flags_str = mysql_field_flags ( $list_f, $i);echo "<br>Имя поля: ". $name_f;echo "<br>Тип поля: ". $type;echo "<br>Длина поля: ". $len;echo "<br>Строка флагов поля: ". $flags_str . "<hr>";}?>В результате должно получиться (если в таблице 2 поля):
Имя поля: idТип поля: intДлина поля: 11Строка флагов поля: not_null primary_key auto_increment_________________________________________________Имя поля: titleТип поля: stringДлина поля: 255Строка флагов поля:Дата добавления: 2016-03-04; просмотров: 669;