Affichage d'une table mysql dans un tableau htm avec les titres des champs

Contenu du snippet

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.

A voir également

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.