Как в PHP поместить enum в массив?

Красносельский
Константин
Константинович

Компьютер и программы

Веб-дизайн

Справочники

Документация по CSS1

Настройка файла .htaccess

Коды ошибки http сервера

Подстановочные символы и регулярные выражения

Спецификация файла robots.txt

SSI – Server Side Includes

Таблица кодировки символов кириллицы

Нестандартные символы в HTML

Вторая таблица символов HTML

MIME Types (типы файлов)

 

Советы начинающим

Как в PHP поместить enum в массив

Советы начинающим Веб-дизайнерам: Что, где и зачем.

Правила плохого тона

WEB-уловки

Камень предкновения: верстка таблицами или блоками?

Рекомендации по разработке веб сайта

 

Анализ WEB-конъюнктуры. Создание лучшего сайта и его раскрутка.

Анализ WEB-конъюнктуры

Предисловие

Приручение поисковых машин

Уровень документа - все гениальное просто

Благоустройство нор для поисковых червей или как водить пауков по нашей паутине

Ускорение индексации сайта

Если гора не идет к Магомету

Индекс цитирования

Что это такое и с чем его едят

Приобретение веса в глазах общественности

Послесловие

Последние замечания по интернет-раскрутке

 

Приложения

А: «Рекомендации лучших пауководов»

Краткий комментарий.

Советы специалистов поисковой системы Rambler.

Использование файлов robots.txt.

Часто задаваемые вопросы.

Советы специалистов поисковой системы Aport.

Регистрация сайта в Апорте.

Советы специалистов поисковой системы Yandex.

Добавление страниц

Индексирование

Положение страницы на выдаче

Поиск со своей страницы

Ответы на часто задаваемые вопросы

 

Б: «1000 сверх-сайтов Рунета»

1000 сверх-сайтов Рунета

 

В: «Сто наиболее популярных поисковых слов»

Сто наиболее популярных поисковых слов

 

Г: «Где это сделать?»

Где это сделать?

 

Д: «Практическое руководство!!!»

Краткий комментарий.

Окна, ссылки и меню.

Ссылки и окна. Внешний вид и внутреннее содержание.

Организация ссылок. Всевозможные оглавления.

Если вам не нравятся фреймы, значит, вы не умеете их готовить.

Меню из выпадающих списков (javascript и CSS).

Многоуровневое раскрывающееся меню (javascript и CSS).

Работа с базами данных.

Обработка баз данных браузером посетителя

Обработка баз данных сервером (PHP)

Взаимодействие с посетителем

Отправка писем с веб-страницы.

Формы

Методы форм.

Создание на сайте PHP голосования.

Регистрация и контроль посетителей (PHP).

Интерактивность материала.

Создание гостевой книги на PHP.

Удаление записей из текстовых баз (PHP).

Заргузка файлов на сервер по HTTP-протоколу (PHP).

Разное.

Псевдослучайные элементы (PHP, javascript).

Точное определение имени и версии браузера с помощью JavaScript, SSI или PHP

Клоакинг и технология «Входных дверей».

Отложенное выполнение и выполнение с заданным интервалом (javascript)

Информация о размере, дате, собственные счетчики и протоколы посещений

 

 

 

Консультации

Экспорт и импорт новостей

PHP chmod – права доступа к файлам

WEB 2.0 – миф, или реальность?

Давно забытый AJAX

Способы хранения веб-страниц: документы FrontPage или базы данных

Как заработать на своем сайте?

FTP клиент, как настроить Total Commander

Знак собаки @ и подавление ошибок в PHP

AJAX

AJAX с точностью до наоборот, или как научить AJAX сохранять историю в браузере

 

Мониторинг веб сайтов и анализ поисковых запросов

Документация по Веб-дизайну

Желающим скачать PHP скрипт или JavaScript

 

Литература и поэзия

Гуманитарные науки

Enum в php массив, Enum to php-array Enum в php массив, Enum to php-array Мастерская

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Хронология материалов

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Обращение к посетителям

Шрифт Font Шрифты Fonts скачать Скачать шрифты

Реферат по психологии религии логике информатике. рефераты контрольные курсовые работы скачать на халаву психология религия информатика халява логика контрольная курсовая работа Скачать рефераты

Создание web сайта на заказ Создание web сайта на заказ

Создание, разработка web сайта на заказ. WEB-design Создание веб сайтов (цены)

web Сайты, созданные Красносельским К. К. Веб-дизайн разработка сайтов на заказ. WEB-design Веб-сайты, созданные мной (потенциальным заказчикам)

Полезные ссылки Полезные ссылки

Красносельский К. К. Компьютер Windows DOS система реестр BIOS программы Веб-дизайн PHP Perl CSS HTML CGI Java JavaScript музыка поэзия стихи тексты песен Психология философия психоанализ психиатрия логика сознание разум мышление интуиция развитие человек реферат религия информатика Об авторе

Компьютер Программы WEB-дизайн Гуманитарные науки Документация Справочник Статьи Статистика сайта

Показать фреймы

 

Web На сайте

 

 

 

ТаблицейБлоками.

Как в PHP поместить enum в массив?

Последняя модификация: 10.08.2014 г

Страница загружена с адреса: http://webdesign.site3k.ru/sovet/enum_to_php_array.html

Моя студия веб-дизайна

Как в PHP поместить enum в массив

В очередной раз, работая с SQL-типом данных enum, решил посмотреть, как другие люди в PHP преобразуют тип enum в массив. Задал запрос в поиск гугла «php enum в массив» и начал просматривать результаты. После десятого стало грустно, и я решил написать об этом небольшую статью – ну нет в сети нормального алгоритма преобразования enum в массив средствами PHP!

Во-первых, что за запрос:

$sql = "show columns from $table like '$column'";

ну это же… нет слов, одни местоимения. Еще бы REGEXP применили, чтоб сервер загрузить по полной программе.

Но это далеко не все извращения, проделываемые ради превращения enum в массив PHP. Однако, не буду их перечислять, так как число бредовых решений множество, в то время, как правильных всего три.

Во-первых, для получения всех значений поля типа enum с именем «enum_field» из базы, имя которой хранится в константе basename, нужно выполнить запрос типа:

$sql="DESCRIBE ".basename." `enum_field`";// создать запрос для enum-поля enum_field
$result=mysql_query($sql) or die(mysql_error());// получить ответ
$records=mysql_num_rows($result);// получить количество записей
if($records){// если записи есть
	@$enum_ar=mysql_fetch_assoc($result);// получить запись в массив
	/* тут будет код для превращения enum в массив */
}
mysql_free_result($result);// освободить память от результатов SQL-запроса.

Во-вторых, можно применить один из трех методов преобразования enum в PHP-массив.

Метод первый:

	preg_match_all("/'(.*?)'/i", $enum_ar['Type'], $ar);

В итоге, в элементе массива $ar с индексом 1, содержится массив всех значений enum-поля. Указанную выше строку нужно вставлять вместо «тут будет код…». Результат можно проверить, поместив в самом конце кода три строки:

echo '<pre>';
print_r($ar[1]);
echo '</pre>';

Метод второй:

Чтобы не менять проверочный код, а возможно и другие места программы, где использовался $ar[1] из первого метода, используем в нем тот же первый индекс массива $ar.

$ar[1]=explode(',',preg_replace('/^enum\((.*)\)$/i','${1}',str_replace("'",'',$enum_ar['Type'])));

Этот вариант более громоздкий по коду, но позволяет, при желании, обходиться без лишних индексов (использовать не $ar[1], а $ar).

Метод третий:

Так же позволяет использовать не $ar[1], а $ar, но использует жудкий eval, которого начинающие программисты боятся, как черт ладана.

eval('$ar[1]='.str_replace('enum','array',$enum_ar['Type']).';');

Таким образом, полный PHP код для получения enum в массив может выглядеть так:

<?php
$sql="DESCRIBE ".basename." `enum_field`";
$result=mysql_query($sql) or die(mysql_error());
$records=mysql_num_rows($result);
if($records){
	@$enum_ar=mysql_fetch_assoc($result);// получить запись в массив
	eval('$ar='.str_replace('enum','array',$enum_ar['Type']).';');
}
mysql_free_result($result);
// только для того, чтобы убедиться, что значения enum действительно попали в массив
echo '<pre>';
print_r($ar);
echo '</pre>';
?>

 

Комментарии к странице (всего 1)

 

 

 

Enum в php массив, Enum to php-array


На главную страницу сайта Enum в php массив, Enum to php-array