Easy-Micro

ESPACEMEMBRE PHP-MySQL
Affichage auto

Afficher automatiquement la table "clients"

Toujours le même code PHP que les exemples précédent, mais cette fois pour un affichage automatique! Un code compatible pour n'importe quelle table

Afficher automatiquement une table MySQL avec la librairie PDO

// connexion à la base
$user = "root";
$pass = "";
$table = "clients";
$dnspdo = 'mysql:dbname=mabase;host=localhost;charset=utf8';

$bdd = new PDO($dnspdo, $user, $pass);

// Récupère les données de la table clients
$requete1 = 'SELECT * FROM '.$table;

// Prépare et exécute la requête
$resultat = $bdd->prepare($requete1);
$resultat->execute();

// récupe le nombre de colonne
$colcount = $resultat->columnCount();

if (!$resultat) {
echo "Problème de requete";
} else {
?>

Liste des clients :
<table border="1">
<tr>
<?php
// boucle qui affiche les noms des colonnes de la table clients
for ($i = 0; $i < $colcount; $i++) {
// utilisation de la méthode PDO getColumnMeta (voir ci-dessous)
$meta = $resultat->getColumnMeta($i);
echo "<th>".$meta['name']."</th>";
}
?>
</tr>
<?php
// double boucle qui affiche le contenu de la table clients
while($ligne = $resultat->fetch()) {
echo "<tr>";
for ($i = 0; $i < $colcount; $i++) {
echo "<td>".$ligne[$i]."</td>";
}
echo "</tr>";
}
?>
</table>

Méthode PDO getColumnMeta()

Est utilisé ci-dessus la méthode PDO getColumnMeta() qui permet de récupérer le nom des colonnes d'une table. Pour afficher ces noms dans un echo, il faut utiliser la clé "name" sur le tableau associatif qui contient ces noms (ici $meta[]).

Modifier les noms des champs

Pour afficher les noms des champs de notre table en majuscule (strtoupper) et en enlevant les 7 dernières lettres des noms (substr):
<?php
// les fonctions utilisée ici doivent être modifiées avec l'extension PDO
for ($i = 0; $i < mysql_num_fields($resultat); $i++) {
echo "<th>".substr(strtoupper(mysql_field_name($resultat,$i)),0,strlen(mysql_field_name($resultat,$i))-7)."</th>";
}
?>

Alias SQL

Pour optimiser - et sécuriser - l'affichage des noms de colonnes, on peut utiliser des alias de nom dans notre requête SQL :
$requete = "SELECT civilite_client as Civilité, nom_client as Nom, prenom_client as Prénom FROM clients";

Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]