diff --git a/cms2/code/bdd.php b/cms2/code/bdd.php index 0c99ce6..112b99f 100644 --- a/cms2/code/bdd.php +++ b/cms2/code/bdd.php @@ -22,7 +22,7 @@ class BDD { private static $handle = null; public static function get() { - if (self::$handle === null) { + if (!is_resource(self::$handle)) { self::$handle = @mysql_connect( Config::get('db_hôte'), Config::get('db_utilisateur'), @@ -31,7 +31,6 @@ class BDD { if (!is_resource(self::$handle)) { Debug::error("Échec à la connexion à la base de données"); } - mysql_select_db(Config::get('db_base'), self::$handle) or Debug::sqlerror(); self::init(); } return self::$handle; @@ -46,6 +45,8 @@ class BDD { } public static function init() { + self::unbuf_query("create database if not exists " . Config::get('db_base')); + mysql_select_db(Config::get('db_base'), self::$handle) or Debug::sqlerror(); self::unbuf_query('create table if not exists ' . self::table("pages") . ' (' . 'uid_page integer auto_increment primary key' . ')'); @@ -55,12 +56,23 @@ class BDD { . 'groupe char(10)' . ')'); self::unbuf_query('create table if not exists ' . self::table("proprietes") . ' (' - . 'uid_prop integer,' + . 'uid_prop integer auto_increment primary key,' . 'uid_page integer,' . 'systeme bool,' . 'nom char(30),' . 'valeur char' .')'); + self::test(); + } + + public static function test() { + // Insertion de la racine : + self::modify("insert into " . self::table("pages") . " values(0)"); + self::modify("insert into " . self::table("proprietes") . " values(0, 0, true, 'date_creation', 0)"); + self::modify("insert into " . self::table("proprietes") . " values(0, 0, true, 'date_modification', 0)"); + self::modify("insert into " . self::table("proprietes") . " values(0, 0, true, 'publier', 'true')"); + self::modify("insert into " . self::table("proprietes") . " values(0, 0, true, 'nom_systeme', 'racine')"); + self::modify("insert into " . self::table("proprietes") . " values(0, 0, true, 'composant_url', '')"); } public static function unbuf_query($q) { @@ -68,23 +80,29 @@ class BDD { mysql_unbuffered_query($q . ";", self::get()) or Debug::sqlerror(); } + public static function select($cols, $table, $filter = "") { + $q = "select $cols from " . self::table($table) . " $filter;"; + debug::info("sql : " . $q); + $qres = mysql_query($q, self::get()) or Debug::sqlerror(); + $ret = array(); + while ($row = mysql_fetch_array($qres)) { + $ret[] = $row; + } + return $ret; + } + + public static function modify($q) { + debug::info("sql : $q;"); + mysql_query($q . ";", self::get()) or Debug::sqlerror(); + } + public static function table($nom) { return Config::get('db_prefixe') . $nom; } - public static function test() { - $result = mysql_query("SELECT id, name FROM mytable") or Debug::sqlerror(); - echo "

"; - - while ($row = mysql_fetch_array($result, MYSQL_NUM)) { - printf("ID : %s Nom : %s", $row[0], $row[1]); - } - - mysql_free_result($result); - } - public static function close() { - mysql_close(self::get()); + mysql_close(self::get()) or Debug::sqlerror(); + self::$handle = null; } } diff --git a/cms2/code/main.php b/cms2/code/main.php index b85f5b5..d3c38f1 100644 --- a/cms2/code/main.php +++ b/cms2/code/main.php @@ -3,9 +3,6 @@ function main() { $bdd = BDD::get(); BDD::reset(); - BDD::close(); - Debug::afficher(); - exit; $g = new AdminListeUtilisateurs(); @@ -14,6 +11,7 @@ function main() { echo htmlspecialchars($p->to_XHTML_5()); echo ""; + BDD::close(); Debug::afficher(); } diff --git a/cms2/code/page.php b/cms2/code/page.php index c61b6b7..8e1f03f 100644 --- a/cms2/code/page.php +++ b/cms2/code/page.php @@ -60,10 +60,10 @@ class Page { niy("composant_url"); } - private $uid = -1; + private $uid = 0; public function uid() { // Renvoie l'uid de la page dans la base de données. - niy("uid"); + return $this->uid; } /* public function select($requête) { @@ -78,7 +78,8 @@ class Page { // ordre = null => ordre = "date_creation desc" // limit = null || limit = 0 => pas de limite // offset = null => offset = 0 - niy("enfants"); + var_dump(BDD::select("uid_page", "enfants", "where uid_page_parent = " . $this->uid())); + niy("enfants__"); } public function ajouter_enfant($type, $groupe = "main") {