From 62a4b84382a33535d5469ad0a87e4fb8281b6822 Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Tue, 11 Nov 2014 22:43:42 +0100 Subject: [PATCH] [Orga] Chargement des événements via SQL --- events.sql | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ import.php | 47 +++++++++++++++++++++++++++++++++++++++++++++++ orga.php | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------- 3 files changed, 177 insertions(+), 69 deletions(-) create mode 100755 events.sql create mode 100644 import.php diff --git a/events.sql b/events.sql new file mode 100755 index 0000000..e6c9503 --- /dev/null +++ b/events.sql @@ -0,0 +1,69 @@ +-- phpMyAdmin SQL Dump +-- version 4.2.7.1 +-- http://www.phpmyadmin.net +-- +-- Client : localhost +-- Généré le : Mar 11 Novembre 2014 à 22:27 +-- Version du serveur : 5.6.20 +-- Version de PHP : 5.5.15 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; + +-- +-- Base de données : `crep` +-- + +-- -------------------------------------------------------- + +-- +-- Structure de la table `events` +-- + +CREATE TABLE IF NOT EXISTS `events` ( +`id` smallint(5) unsigned NOT NULL, + `creationTime` int(10) unsigned NOT NULL, + `nom` text CHARACTER SET utf8 NOT NULL, + `description` mediumtext CHARACTER SET utf8 NOT NULL, + `annule` tinyint(1) NOT NULL DEFAULT '0', + `valide` int(10) unsigned NOT NULL DEFAULT '0', + `duree` mediumint(8) unsigned NOT NULL DEFAULT '3600', + `supprime` tinyint(1) NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; + +-- +-- Contenu de la table `events` +-- + +INSERT INTO `events` (`id`, `creationTime`, `nom`, `description`, `annule`, `valide`, `duree`, `supprime`) VALUES +(1, 1415737327, 'Événement de test n°1', 'Description de l''événement de test n°1.', 0, 0, 7200, 0), +(2, 1415738888, 'Événement de test n°2', 'Description de l''événement de test n°2.\r\nNouvelle ligne et caractères $ρ∑⊂|⋀∪×.', 1, 0, 12345, 0); + +-- +-- Index pour les tables exportées +-- + +-- +-- Index pour la table `events` +-- +ALTER TABLE `events` + ADD PRIMARY KEY (`id`), ADD KEY `id` (`id`); + +-- +-- AUTO_INCREMENT pour les tables exportées +-- + +-- +-- AUTO_INCREMENT pour la table `events` +-- +ALTER TABLE `events` +MODIFY `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/import.php b/import.php new file mode 100644 index 0000000..d7ff0d0 --- /dev/null +++ b/import.php @@ -0,0 +1,47 @@ +' . $templine . '\': ' . mysql_error() . '

'); + + // Reset temp variable to empty + $templine = ''; + } + } + echo "Tables imported successfully"; +} +?> \ No newline at end of file diff --git a/orga.php b/orga.php index edef10c..a658fd8 100644 --- a/orga.php +++ b/orga.php @@ -28,8 +28,6 @@ if ($e_connecte) { $droits = array('voir'); } -$lastID = 0; // TODO Est-ce que cela mérite-t-il d'exister ? - class Evenement { // TODO Mettre tout en privé et utiliser __get et __set @@ -46,19 +44,62 @@ class Evenement public $dates = array(); public $datesVotes = array(); - function __construct($id = 0) { - global $lastID; - if ($id == 0) { // Nouvel évènement - $lastID += 1; - $this->id = $lastID; + private static $bddOK = false; + private static $bdd = null; + public static $tout = array(); + + private static function connecterBDD() { + if (!Evenement::$bddOK) { + require_once("creds.php"); + try { + Evenement::$bdd = mysql_connect(__MYSQL_HOSTNAME__, __MYSQL_USERNAME__, __MYSQL_PASSWORD__); + mysql_query("SET NAMES 'utf8'"); + } catch(Exception $e) { + echo 'Nop connect'; + return; // TODO Message d'erreur digne de ce nom + } + if (mysql_select_db('crep', Evenement::$bdd)) { + Evenement::$bddOK = true; + } else { + echo 'Nop db'; + } + } + } + + public static function chargerTout() { + Evenement::$tout = array(); + Evenement::connecterBDD(); + $requete = 'SELECT id FROM events'; + // TODO SQL Protéger + $resultat = mysql_query($requete); + while ($row = mysql_fetch_assoc($resultat)) { + Evenement::$tout[] = new Evenement($row['id']); + } + } + + function __construct($id = null) { + Evenement::connecterBDD(); + + if ($id == null) { // Nouvel évènement $this->creationTime = time(); + // TODO SQL Récupérer id (AUTOINCREMENT) } else { // Évènement existant : on charge - // TODO SQL Select - $this->id = $lastID + 1; // TODO DEBUG SQL Récupération id - if ($this->id > $lastID) { - $lastID = $this->id; + $requete = 'SELECT id, creationTime, nom, description, annule, valide, duree, supprime FROM events WHERE id='.$id; + // TODO SQL Protéger + $resultat = mysql_query($requete); + if ($resultat && $row = mysql_fetch_assoc($resultat)) { + $this->id = $row['id']; + $this->creationTime = $row['creationTime']; + $this->nom = $row['nom']; + $this->description = $row['description']; + $this->annule = $row['annule']; + $this->valide = $row['valide']; + $this->duree = $row['duree']; + $this->supprime = $row['supprime']; + + } else { + echo 'Nop resultat'; } - // TODO SQL Récupération du reste des propriétés } } @@ -191,62 +232,12 @@ class Evenement } -# a_ : Récupérer depuis la base de donnée (ou pas) -function a_evenements() { - # DEBUG - $test1 = new Evenement; - $test1->duree = 12345; - $test1->nom = 'Évènement de test n°1'; - $test1->description = 'Description de l\'évènement de test n°1'; - $test1->valide = time(); - - $test2 = new Evenement; - $test2->nom = 'Évènement de test n°2'; - $test2->description = 'Description de l\'évènement de test n°2'; - $test2->duree = 36000; - $test2->valide = time(); - $test2->annule = true; - - $test3 = new Evenement; - $test3->nom = 'Évènement de test n°3'; - $test3->description = 'Description de l\'évènement de test n°3'; - $test3->dates[] = 1415482197; - $test3->datesVotes[] = 42; - $test3->dates[] = time(); - $test3->datesVotes[] = 5; - $test3->dates[] = time()+365*24*3600; - $test3->datesVotes[] = 1; - - $test4 = new Evenement; - $test4->nom = 'Évènement de test n°4'; - $test4->description = 'Description de l\'évènement de test n°4'; - $test4->dates[] = time(); - $test4->datesVotes[] = 5; - $test4->dates[] = time()+365*24*3600; - $test4->datesVotes[] = 1; - $test4->dates[] = time(); - $test4->annule = true; - - $test5 = new Evenement; - $test5->nom = 'Évènement de test n°5'; - $test5->description = 'Description de l\'évènement de test n°5'; - $test5->dates[] = time(); - $test5->datesVotes[] = 0; - $test5->supprime = true; - - $test6 = new Evenement; - $test6->nom = 'Évènement de test n°6'; - $test6->description = 'Description de l\'évènement de test n°6'; - $test6->valide = 1415452197; - - return array($test1, $test2, $test3, $test4, $test5, $test6); -} +Evenement::chargerTout(); -$evenements = a_evenements(); +# a_ : Récupérer depuis la base de donnée (ou pas) -function a_evenement($id) { - global $evenements; - foreach ($evenements as $evenement) { +function a_evenement($id) { // TODO Méthode statique à Evenement + foreach (Evenement::$tout as $evenement) { if ($evenement->id == $id) { return $evenement; } @@ -324,7 +315,7 @@ $evenementsPlanifies = array(); $evenementsAPlanifier = array(); $evenementsPasses = array(); -foreach ($evenements as $evenement) { +foreach (Evenement::$tout as $evenement) { if (!$evenement->supprime) { if ($evenement->valide) { if ($evenement->passe()) { @@ -345,9 +336,10 @@ if (!$e_connecte) { -

Évènements plannifiés