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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 21 569 fois - Téléchargée 35 fois

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

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
vendredi 19 mai 2017
Statut
Membre
Dernière intervention
19 mai 2017

comment je paramettrai ("./Commun/connexion.php")
Messages postés
1
Date d'inscription
lundi 17 novembre 2008
Statut
Membre
Dernière intervention
8 mai 2009

IL Y A PAS UN CODE SIMPLE QUI afficher Mysql TABLE dans un TABLEAU SUR UNE page web
Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008

salut,
il faut que tu remplisse le fichier connexion.php avec les paramètres de ta bdd ...
Messages postés
2
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
19 février 2008

Bonjour,

Étant dans le très débutant en PHP, j'ai une question bête pour vous:

Comment utilise t'on ce code. J'ai séparré les pages afin de réflèter les indications du script plus haut mais j'ai toujours un problème de connexion à la db. Je ne vois pas l'endroit ou indiqué le nom.

Merci et désolé pour cette question.

Cko4
Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008

Moi dans mes pages je n'affichais pas les champs de ID de mes tables que j'ecrivais : ID_NOMCHAMP donc des que ca commence par ID_ je n'affichais pas la colonne (ca peut donner des idées)

Sinon si tu veut avoir des nom de colonnes (en affichage) originaux tu peut faire une correspondance dans une table annexe structuré comme suit :
NOMCHAMP NOMCOLONNE_FR NOMCOLONNE_ENG
comme ca tu peut meme gerer plusieurs langue si il le faut!

Sinon pour les # devant chaque ligne j'en ai aucunne idée ...
Par contre si tu as ultraedit il y a une option "mode colonne" qui te permet de selectionner verticalement et donc d'eliminer chaque debut de ligne tres facilement!

sinon : à la ligne 4, le terme $adresse est assez mal approprié car tu utlises partout ailleurs $host ...
# $choix = new $SQL($identifiant,$password,$Adresse,$NomTable);
# $choix2 = new $SQL($identifiant,$password,$Adresse,$NomTable);

J'utilise $host dans mes class mais a l'instanciation de ma classe j'appelle bien $adresse

Et pour $table c'est bien le nom de ma table que je veut!
Afficher les 14 commentaires

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.