Собственно профи от php могут пропустить этот пост мимо.
Я сделал для себя набор функций, позволяющий быстро (копировать/вставить) описывать механизм создания/удаления таблиц.
Пойдет тем, кто не хочет по каким-то причинам лазить каждый раз в phpMyAdmin, а хочет иметь небольшой универсальный инсталлятор таблиц, в котором можно легко подправить параметры создаваемых таблиц. От знания типов данных MySQL не освобождает… ;)
Этот пост создан для понимания описания, приведенного в этом посте про карты
Файл db.php. Для тех кто отлаживает на локальной машине, а потом выкладывает на хостинг, где доступ к БД отличается.
Я сделал для себя набор функций, позволяющий быстро (копировать/вставить) описывать механизм создания/удаления таблиц.
Пойдет тем, кто не хочет по каким-то причинам лазить каждый раз в phpMyAdmin, а хочет иметь небольшой универсальный инсталлятор таблиц, в котором можно легко подправить параметры создаваемых таблиц. От знания типов данных MySQL не освобождает… ;)
Этот пост создан для понимания описания, приведенного в этом посте про карты
<? //Error_Reporting(E_ALL); $db_file = "db.php";// Здесь лежат пути и пароли к БД //описываем имена таблиц $tableParameterTypes = "GM_PARAMETERTYPES"; $tableObjectTypeParameters = "GM_OBJECTTYPEPARAMETERS"; $tableObjectTypes = "GM_OBJECTTYPES"; $tableObjects = "GM_OBJECTS"; $tablePoints = "GM_POINTS"; //В массив $Tables по именам таблиц вставляем массивы из имен столбцов и их параметров "ParameterTypeID"=>"INT NOT NULL AUTO_INCREMENT PRIMARY KEY", "Info" =>"TEXT" ), "ObjectTypeID"=>"INT NOT NULL AUTO_INCREMENT PRIMARY KEY", "ParameterTypeID" =>"INT", "ParameterName" => "TEXT", "DefaultValue"=>"TEXT", "Info"=>"TEXT" ), "ObjectTypeID"=>"INT NOT NULL AUTO_INCREMENT PRIMARY KEY", "ObjecTypeName" =>"TEXT", "Info" => "TEXT" ), "ObjectID"=>"INT NOT NULL AUTO_INCREMENT PRIMARY KEY", "Name" =>"TEXT", "Info" =>"TEXT", "ParentObjectID" => "INT", "ObjectTypeID"=>"INT" ), "PointID"=>"INT NOT NULL AUTO_INCREMENT PRIMARY KEY", "ParentObjectID" => "INT", "lat" =>"TEXT", "lng" =>"TEXT" ), ); function createTables() //Функция создает таблицы, описанные в массиве $Tables { echo "Starting createTables() "; global $Tables; //print_r($Tables); foreach ($Tables as $key => $data) { echo $key." "; createTable($key); } } function createTable($tableName) //Функция создает таблицу с указанным именем, описанную в массиве $Tables { echo "Starting createTable(".$tableName.") "; global $db_file; include($db_file); global $Tables; $vars = $Tables[$tableName]; $request = "CREATE TABLE `".$tableName."` ("; for($i=0; $i<$maxI; $i++) { $request.="`".$keys[$i]."` ".$vars[$keys[$i]]; if(($i+1)<$maxI){$request.=", ";} } $request.=") ENGINE = MYISAM CHARACTER SET utf8 ; "; echo ' $request: '.$request." "; /* Освобождаем память от результата */ } function dropTables() //Функция удаляет таблицы, описанные в массиве $Tables { echo "Starting dropTables() "; global $Tables; //print_r($Tables); foreach ($Tables as $key => $data) { echo $key." "; dropTable($key); } } function dropTable($tableName) //Функция удаляет таблицу с указанным именем, описанную в массиве $Tables { echo "Starting dropTable(".$tableName.") "; global $db_file; include($db_file); $request = "DROP TABLE `".$tableName."`;"; echo "SQLRequest=".$request." "; } /* Освобождаем память от результата */ //mysql_free_result($result); /* Закрываем соединение */ //mysql_close($db); //Собственно здесь мы указываем, что именно мы хотим сделать с таблицами. createTables(); //dropTables(); //print_r($Tables); //print_r($TransportTypes); ?>
<? echo "Starting db.php<br>"; $db_user = "dbuser"; $db_host = "localhost"; $db_password = "dbpass"; $db_name = "database"; ?>
Реклама #
Виктор 14 лет назад #
Набор функций, конечно, полезный, но мне бы проще было, чтобы был мини sql-commander. То есть текстовое поле для ввода команды, кнопка отправить и вывод результата выполнения запроса если он был select. А то порой для простого буквально действия лезть в phpmyadmin заходя через панель хостера так влом, что называется из пушки по воробьям.
Кстати, результат возвращают не только select`ы ещё и обработку show бы.
А это хорошо бы (с одной стороны) ввести в api движка для облегчения и стандартизации создания таблиц устанавливаемыми компонентами или модулями (в плагинах есть такая секция и можно при инсталяции записать чего хочешь).
С другой же стороны - это дыра в движке.
Львенок 14 лет назад #
А вообще можно наверное посмотреть и попытаться расширить API Инстанта.
L.B.Griffin 14 лет назад #
lezginka.ru 14 лет назад #
Львенок 14 лет назад #
lezginka.ru 14 лет назад #
движок набирает популярность и это проблема уже назрела.
Львенок 14 лет назад #
у меня пока нет полноценных работающих проектов на Инстанте
пока только знакомлюсь с мелочами