je viens de coder une class qui me serre a renvoyer le contenu d'une BD mysql en fichier xml, elle fonctionne, mais comme mon experience en POO est récente j'aimerais savoir si elle est codé de manière propre , et la j'ai des doutes
je vous la joints; elle est bien entendu ,pour ceux qui voudrais l'utiliser ou l'améliorer entièrement disponible.
merci par avance pour vos conseils qui sont tjrs forts enrichissants , et merci a tous les dev qui donne de leur tps et de leur expérience.
<?php
/* class recuperation BD mysql en format XML
*cette classe recupere les informations sur une BD mysql et les retourne en XML dans l
*'entete httpp
* le nom de la base est utilisé pour la racine du doc xml, le nom de la table
*est utilisé pour les parent du doc xml
---- argument du constructeur ------
$dbhost: nom du serveur
$dbusername: nom de l'utilisateur
$dbpass: pass utilisateur
$dbname: nom bas de données utilisé pour la racine du doc xml
$table: nom de la table utilisé pour les parent du doc xml
$requete: requete adressée a la base
*/
class sql_xml{
public function __construct($dbhost,$dbusername,$dbpass,$dbname,$table,$requete)
{
$connexion = mysql_connect($dbhost, $dbusername, $dbpass);
if (!$connexion) { die('There was a problem with the database, please try back later db.php'); }
else{
$selection_BD=mysql_select_db($dbname, $connexion);
if( $selection_BD){
//echo "selection de la base OK<br>";
// selectionne les champs de la table {$table}
$RST=mysql_query("SELECT * FROM {$table}");
//echo mysql_num_fields($RST);
// initialise une var $TT resultat du nombre de champs
$TT=(mysql_num_fields($RST)-1);
// initialise un tableau $tab charge ce tableau avec les noms de champs
$tab=array();
// boucle de chargement
for ($i=0;$i<=$TT;$i++){
//initialise une var $nom_champ qui recupere les nom de champs
$test[$i]=mysql_field_name($RST,$i);
//echo $test[$i];
}// fin for
// inialisation de l'entete pour qu'il recoive les donnée XML
header('Content-type: text/xml');
header('Pragma: public');
header('Cache-control: private');
header('Expires: -1');
// initialisation de la var $xml qui vas recevoir les données xml
$xml="<?xml version=\"1.0\" encoding=\"utf-8\"?> \n<$dbname>\n";
// requete
$Requete=mysql_query($requete);
// boucle qui ecrit les données ds la var $xml
while($resultat=mysql_fetch_array($Requete,MYSQL_ASSOC)){
$xml.="<$table>\n";
foreach($test as $key => $value)
{
$xml.="<$value>{$resultat[$value]}</$value>\n";
}// foreach
$xml.="</$table>\n";
}//fin while
$xml.="</$dbname>";
}// fin if selection base
// renvois l'ensemble des données formater en XML
echo $xml;
}// fin else connexion
}// fin constructeur
}// fin class
//-------------- TRAITEMENT-----------------------------------------//
$requete="SELECT * FROM employes";
$test=new sql_xml("localhost","root","","bruno2","employes",$requete);
?>