table html a partir d'un résultat PDO
Posté : 22 mai 2014, 11:14
Bonjour a tous, je cherche à créer une table à partir d'un résultat de requête exécutée par PDO.
La première étape a été de récupérer les noms des colonnes et ça fonctionne:
je cherche un moyen propre de revenir en arrière sans rééxécuter la requête.
Cette fonction étant faite pour travailler sur n'importe quelle requête, je ne peux pas afficher la première ligne de la table avec la fonction car je ne connais pas d'avance les attributs de objets renvoyés par la requête.
J'ai déjà regardé du côté de:
Sinon il y a bien dans la fonction fetch() une variable appelée offset et je pense que la solution s'y trouve, cependant je n'ai jamais utilisé cela si quelqu'un pouvait éclairer ma lanterne car la doc php n'est pas très clair sur la façon d'utiliser cet offset. Merci
La première étape a été de récupérer les noms des colonnes et ça fonctionne:
//FONCTION
function getHTMLTableHead($requestResult)
{
$table="<table border=1><thead>";
foreach(array_keys(get_object_vars($requestResult)) as $h){
$table.="<th>".$h."</th>";
}
$table .= "</thead></table>";
return $table;
}
//APPEL DE FONCTION:
$sql = "SELECT * FROM Utilisateur";
$req = ConnexionPDO::getInstance()->prepare($sql);
$req->execute();
echo getHTMLTableHead($req->fetchObject());
le problème est qu'en faisant un fetch pour afficher les noms des colonnes, cela bouffe un résultat de ma requête.je cherche un moyen propre de revenir en arrière sans rééxécuter la requête.
Cette fonction étant faite pour travailler sur n'importe quelle requête, je ne peux pas afficher la première ligne de la table avec la fonction car je ne connais pas d'avance les attributs de objets renvoyés par la requête.
J'ai déjà regardé du côté de:
mais cet avertissement n'est pas très rassurant.Avertissementpublic array PDOStatement::getColumnMeta ( int $column )
Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.
Sinon il y a bien dans la fonction fetch() une variable appelée offset et je pense que la solution s'y trouve, cependant je n'ai jamais utilisé cela si quelqu'un pouvait éclairer ma lanterne car la doc php n'est pas très clair sur la façon d'utiliser cet offset. Merci
