Последнее время довольно часто приходится редактировать данные, находящиеся в какой-либо таблице MySQL. Причем часто требуется чтобы это редактирование происходило с неким, пусть даже самым простым, интерфейсом, а сама процедура вызова формирования интерфейса занимала несколько строк кода.
После долгих мучений и раздумаваний было принято решение написать небольшой PHP класс, который смог бы решить данную задачу.
В конце концов был получен класс, который позволяет сформировать HTML таблицу в которой будут отображены необходимые данные, а так же позволяет вносить изменения в полученные данные. А главное для того чтобы сформировать такую таблицу нужно написать пару строчек кода.
Вот пример кода формирования таблицы:
include 'MySQL.php'; $S = new MySQL("localhost", "root", "pwd"); $S->Сonnect("MyBase"); $ARR = array("FIELDS" => array("id:HIDDEN,KEY", "os", "userid:SELECT:Users|id|login")); $LastIndex = $S->GetHTML(1, "Table", $ARR); $ARR = array("FIELDS" => array("id:KEY", "os", "userid:CHECKBOX:Users|id|login")); $LastIndex = $S->GetHTML(1, "Table", $ARR, 1); $S->Close();
После выполнения данного скрипта мы увидим две таблицы. Первая таблица будет просто отображать данные, вторая будет иметь возможность сохранить внесенные изменения (за это отвечает последний параметр, равный единице).
Разберем наш код:
$S = new MySQL("localhost", "root", "pwd");
Мы создаем экземпляр нашего класса для работы с базой данных. Параметры вполне очевидны: адрес сервера БД, имя пользователя БД, пароль указанного пользователя.
$S->Сonnect("MyBase");
Соединяемся с базой данных «MyBase».
$ARR = array("FIELDS" => array("id:HIDDEN,KEY", "os", "userid:SELECT:Users|id|login")); $LastIndex = $S->GetHTML(1, "Table", $ARR);
Собственно строим таблицу с данными из «Table». Первый параметр при первом вызове функции на странице равен всегда еденице, при последующих вызовах функции в рамках выполнения одного скрипта передается значение, которое было возвращено предыдущем вызовом функции GetHTML. Нужно это в связи с тем, что бы можно было корректно получать значения из сформированной таблицы методами JavaScript. (Возвращаемое число метода GetHTML по сути — число созданных HTML элементов которым было присвоено свойство id).
$ARR — Массив параметров нашей таблицы. Имеет один обязательный индекс «FIELDS», отвечающий за поля которые мы будем селектить из указанной таблицы. (так же возможны индексы «SORT», «WHERE», «DESK», «LIMIT», «TABLE_TITLE»). Индекс «FIELDS», так же имеет свой формат. Элементы «FIELDS» — имена выбираемых полей с указанием их свойств отображения. Колонку можно отображать как текст, как поле для ввода текста, а так же как checkbox, radio или select (последние три типа используются, если поле является ссылкой на запись из другой таблицы). В нашем случае имеем, что выбираться будут записи ‘id’, ‘os’, ‘userid’, однако отобразятся только поля ‘os’ и ‘userid’. Колонка ‘userid’ отобразится как список элементов, причем данная колонка ссылается на поле ‘id’ таблицы ‘Users’, а значение для отображения хранится в поле ‘login’ таблицы ‘Users’.
Захотели такой класс? Напишите мне и мы что-нибудь придумаем =)