Ce code permet d'afficher l'integralité d'une table mysql dans un tableau html peut importe les titres des champs de la table
J'ai pas vu de code satisfaisant pour faire la meme chose c'est pour ça que je le publie ...
Tout repose sur l'utilisation de show columns
Faut dire si il y a des besoin c'est la première source que je publie.
Toute remarque raisonnable est la bienvenue
Source / Exemple :
/*----------------------------------------------Fichier : connexion.php------------------------------------*/
<?php $identifiant = "";
$password = "";
$Adresse = "";
$NomTable = "";
?>
/*----------------------------------------------Fichier : SGBD.class.php------------------------------------*/
<?php
// Création de la classe mère
class SGBD
{
// Attribut du login du SGBD
var $SGBD_login;
// Attribut du password du SGBD
var $SGBD_password;
// Attribut de l'hôte du SGBD
var $SGBD_host;
// Attribut du nom de la base de données
var $SGBD_base;
// Attribut de connection
var $connect;
// Attribut de requête
var $requete;
// Définition du constructeur
function SGBD ($login, $password, $host, $base){
// Vérification des variables
if (empty ($login) || empty ($host) || empty ($base)){
// Affichage du message d'erreur
echo "<b>Erreur :</b> Une ou plusieurs variable(s) n'ont pas été renseigné.";
exit;
}
else {
// Initialisation des attributs
$this->SGBD_login = $login;
$this->SGBD_password = $password;
$this->SGBD_host = $host;
$this->SGBD_base = $base;
}
}
}//fin de la classe
?>
/*-----------------------------------------------Fichier : MySQL.SGBD.class.php-------------------------*/
<?php
// Création de la classe fille
class MySQL extends SGBD
{
// Méthode connect()
function connect ()
{
// Connection à MySQL
$connect = @mysql_connect ($this->SGBD_host, $this->SGBD_login, $this->SGBD_password);
// Vérification de la connection
if (!$connect){
// Affichage du message d'erreur
echo "<b>Erreur :</b> Connection à MySQL impossible";
exit;
}
// Connection à la base de données
if (!@mysql_select_db ($this->SGBD_base, $connect)){
// Affichage du message d'erreur
echo "<b>Erreur :</b> Connection à la base de données impossible";
exit;
}
// Initialisation de l'attribut de connection
$this->connect = $connect;
}
// Méthode requete()
function requete ($requete){
// Exécution de la requête
$result = mysql_query ($requete, $this->connect);
// Vérification de la requête
if (!$result){
// Affichage du message d'erreur
echo "<b>Erreur :</b> Impossible d'effectuer la requête au serveur";
exit;
}
else {
// Initalisation de l'attribut de requête
$this->requete = $result;
}
}
// Méthode deconnect()
function deconnect (){
// Déconnection de la base de données
mysql_close ($this->connect);
}
}//fin de la classe
?>
/*----------------------------------CODE à METTRE dans la page----------------------------------------*/
<table width="100%" border="1" cellspacing="1" cellpadding="1" name="head">
<tr>
<?php
/*--------------------declaration--------------------*/
// Inclusion de la classe mère
include ("./Commun/SGBD/SGBD.class.php");
/* Initialisation de la variable du SGBD correspondant */
$SQL = "MySQL";
// Inclusion de la classe fille du SGBD correspondant
include ("./Commun/SGBD/".$SQL.".SGBD.class.php");
//Inclusion des paramêtres de connexion
include ("./Commun/connexion.php");
//initialisation des objets
$choix = new $SQL($identifiant,$password,$Adresse,$NomTable);
$choix2 = new $SQL($identifiant,$password,$Adresse,$NomTable);
$requete = "select $NomChamp from `$nom_table`";
/*---------------------Fin de déclaration----------------------*/
/*---------------------Debut script-----------------------------*/
//connexion
$choix->connect();
//on récupère les noms des champs
$choix->requete($requete);
$choix->deconnect();
$i = 0;
while($row = mysql_fetch_field($choix->requete)){
//on affiche le nom des Champs
$i++;
echo "<td>$row->name</td>";
$pipo[$i] = "$row->name";
}
echo "</tr>";
//on passe à l'affichage des données en elle meme
//on commence la boucle pour afficher tout
while($row2 = mysql_fetch_assoc($choix->requete)){
echo "<tr>";
//on affiche le résultat de la requete en respectant l'ordre
foreach($pipo as $pipo2){
echo "<td>$row2[$pipo2] </td>";
}
echo "</tr>";
}
?>
Conclusion :
J'ai utilisé un code objet que j'ai trouvé sur ce site, j'en profite pour remercier son créateur malheuresement je me souvient plus du nom :( mais son code m'est tres utiles (les deux classes objets pour le MySQL) si ya un probleme à ce niveau me le signaler je supprimerai les classes.... J' aurai bien mis un lien mais je sais plus ou j'ai pris ca si quelqu'un reconnais je mettrai ca à jour.
Ne pas oublier de changer $nom_table par le nom de la table à afficher et de paramettrer pour sa propre base de donnée le : include ("./Commun/connexion.php"); sinon ca va pas marcher.
si vous soumettez une bonne amelioration le code sera revu peu apres.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.