Lister les element d'une table vide

Résolu/Fermé
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 6 août 2014 à 19:51
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 8 août 2014 à 06:25
Bonjour,
j'aimerais pouvoir récupérer les éléments vide d'une table afin que l'utilisateur les renseignes lui même.

Voici mon code php/sql:

public function listeElementTable($table)
    {
	    $req = $this -> bdd -> query("SELECT * FROM ".$table);
	    while($don = $req -> fetch(PDO::FETCH_ASSOC))
	    {
		    return $don;
	    }
    }


Et la return ne retourne rien car la table passé en paramètre est vide. Ce que je voudrais, c'est récupérer les champs de cette table comme ceci:
id
nom
prenom
adresse
...
Mais comment faire???

Merci d'avance pour votre aide précieuse.

2 réponses

JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 6/08/2014 à 21:19
Salut,

D'habitude, et pour éviter de mettre en faille la confidentialité de la base de données, on le fait manuellement !

Donc si vous voulez créer un formulaire HTML pour alimenter cette table, et puisque vous connaissez déjà le schéma de la base de données, vous devez créer les champs <input> manuellement, un par un ...

Je ne vois aucun intérêt a le faire automatiquement (avec une boucle), on applique une boucle lorsque la taille des données est grande, ou grandit quotidiennement ... par contre le nombre de champs d'une table, il est généralement constant, et ça ne dépasse pas la trentaine voir la vingtaine de colonnes par table.

Sinon,

SELECT * 
FROM information_schema.columns
WHERE TABLE_SCHEMA = 'Nom de la base de données' 
AND TABLE_NAME = 'Nom de la table'


Mettez en résolu quand c'est résolu ...
0
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 2
Modifié par lamouchetsetse le 7/08/2014 à 15:17
Salut Joos.
Merci pour ta réponse ça marche nikel.
Pour info, ci je souhaite procéder de cette façon, c'est pour faciliter l'administration du site, Ainsi, l'administrateur futur pourra créer ses tables et les modifier comme bon lui semble sans avoir de base en informatique.

Voici le code final:

public function listeElementTable($table)
    {
     $req = $this -> bdd -> query("SELECT column_name
                                      FROM information_schema.columns
                                      WHERE table_schema = 'nomdematable'
                                      AND table_name= '".$table."'");
     while($don = $req -> fetch(PDO::FETCH_COLUMN))
     {
      $donnee[] = $don;
     }
     return $donnee;
    }
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
8 août 2014 à 06:25
Je vois, si vous cherchez à créer une interface pour l'administrateur afin qu'il puisse travailler d'une façon plus ou moins facile et direct sur la base de données, et ben pourquoi pas phpMyAdmin, en ajoutant un nouveau utilisateur, et en lui affectant tel et tel privilèges, ça peut faire l'affaire !

Sinon,

Il faudra alors créer une bonne API pour sécuriser l'interaction de l'administrateur sur la base de données, parce que comme vous l'avez dit, l'administrateur n'est pas forcement un informaticien, donc il peut faire n'importe quoi, supprimer, ajouter ou modifier des colonnes ou des tables dont certaines parties du site dépendent toujours ...

Bon courage.
0