"; 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()); } } /* class DB extends Selectable { private static $handle = null; public function __construct() { if (self::$handle === null) { niy("Connexion à la BDD"); } else { return self::$handle; } } } class Selectable { // TODO : comment faire un select sur la table page ? // TODO : comment créer une nouvelle page ? function select($qw_champs, $qw_ordre = "", $limit = 0, $offset = 0) { // Retourne un selectable, qui a une méthode run() (la méthode run renvoie la liste d'éléments. Chaque élément a une méthode set()). // Une limit de 0 signifie qu'on prend tous les éléments à partir de $offset. } function set($valeur, $qw_champs) { // Appelle set(valeur) sur chaque élément de $this->select(champs, ordre, 0, 0)->run() } function set_with_uid($valeur, int $uid) { // Appelle set(valeur) sur la ligne de la base de données avec cet uid. // Les
des pages ont des champ et un bouton submit. // Lorsqu'on active ce submit, les lignes correspondant aux _uid_ dans la base de données reçoivent la bonne valeur. } function sql() { } function add_setter($condition, $fonction_setter) { // Si on fait un set qui remplit la condition, la fonction_setter est appellée au lieu de modifier directement la bdd. // Condition peut être : // true // toujours appellé (pour les permissions, les dates de modification etc.). // type de page parente // lorsqu'on récupère la liste des enfants d'une page de ce type. // type de page, nom attribut // lorsqu'on récupère cet attribut d'une page de ce type. } function add_getter($condition, $fonction_getter) { // Comme add_setter(). } } */ ?>