[PRADO] Utiliser une base de données
Dans ce tutorial, nous allons voir comment utiliser une base de données avec PRADO.
Nous repartons de notre premier tutorial sur PRADO, PRADO Structure de base
Tout d’abord, téléchargeons adodb pour php sur sourceforge.
Il est alors nécessaire de décompresser l’archive et de la copier à la racine du site.
Nous devons donc obtenir ce type de fichiers à la racine du site sur le serveur :
– adodb
– framework
– protected
– index.php
Nous partons de l’idée que nous avons une base de données du nom de test et qui à une table editos.
Le code SQL pour la créer est le suivant :
CREATE TABLE `editos` ( `Id` int(11) NOT NULL auto_increment, `edito` text NOT NULL, PRIMARY KEY (`Id`) )
Et nous supposons qu’il a au minimum un enregistrement, comme celui-ci :
INSERT INTO `editos` (`Id`, `edito`) VALUES (1, 'voici mon edito');
1. index.php
Il faut maintenant éditer le fichier index.php et rajouter cette ligne en début du fichier :
require_once("adodb/adodb.inc.php");
Nous devons donc avoir le code suivant :
<?php require_once("adodb/adodb.inc.php"); $basePath = dirname(FILE); $frameworkPath=$basePath.\\\\\'/framework/prado.php\\\\\'; require_once($frameworkPath); $application = new TApplication; $application->run(); ?>
2. application.xml
Créons maintenant, le fichier « application.xml » à la racine du répertoire « protected ».
Il doit contenir le xml suivant :
<?xml version="1.0" encoding="utf-8"?> <application id="TEST" Mode="Debug"> <globalization Charset="ISO-8859-15" /> <using namespace="Application.pages.*" /> </paths> <parameters> <parameter id="DBHost" value="localhost" /> <parameter id="DBLogin" value="root" /> <parameter id="DBPassword" value="toto" /> <parameter id="DBBase" value="test" /> </parameters> </application>
Le premier, c’est la valeur de « DBHost », qui correspond au serveur mysql, ici « localhost ».
Le deuxième, c’est la valeur de « DBLogin », qui correspond au login mysql, ici « root ».
Le troisième, « DBPassword », qui correspond au mot de passe mysql, ici « toto ».
Et enfin, le dernier, « DBBase », qui correspond à la base de données mysql, ici « test ».
3. Class de connection
Pour se connecter au serveur mysql, nous allons créer une classe « PageDB.php » dans le répertoire « protected/pages ».
Le contenu de ce fichier doit correspondre à ceci :
<?php class PageDB Extends TPage { public function Connexion() { $connexion = &ADONewConnection("mysql"); $connexion->Connect($this->Application->Parameters["DBHost"], $this->Application->Parameters["DBLogin"], $this->Application->Parameters["DBPassword"], $this->Application->Parameters["DBBase"]); return $connexion; } } ?>
3. Mise en place d’un TDataGrid au niveau de la class Home.php
Pour mettre en place un TDataGrid, nous allons changer la dépendance de la classe Home, elle ne sera plus héritière directe de TPage, mais de PageDB :
class Home extends PageDB
Il faut maintenant créer une fonction qui est prise en compte au chargement de la page, donc une fonction « OnLoad », ce qui donne pour toute la classe :
<?php class Home extends PageDB { public function OnLoad($param) { parent::onLoad($param); $this->Edito->DataSource = $this->Connexion()->Execute("SELECT * FROM editos WHERE 1 ORDER BY Id LIMIT 1"); $this->Edito->DataBind(); } } ?>
4. Mise en place du TDataGrid au niveau du Home.page
Rajoutons maintenant le code suivant dans le body de la page Home.page :
<com:TDataGrid AutoGenerateColumns="false" ID="Edito" > <com:TBoundColumn HeaderText="Edito" DataField="edito"/> </com:TDataGrid>
Et voilà le tour est joué, le contenu du champ edito de la table editos, va apparaitre.
Voir aussi
– PRADO Structure de base