[résolu] PHP/MySQL > récup nombres de champs et nom des champs d'une table
Tags :
- MySQL
- Programmation
Dernière réponse : dans Programmation
poolos
5 Mai 2006 19:44:42
Bonjour,
j'utilises php avec MySQL et il me faudrait une fonction qui prend en paramètre le nom d'une table et qui me retourne le nombre de champs de cette table dans une variable de type entier et le nom de chaque champ dans un tableau de chaînes.
Les informations de connection à la base sont ok je cherches juste à récupérer le nombre de champs et le nom de chacun de ces champs.
Si vous connaissez une fonction de ce type, je suis preneur :-D
mici tlm ;-)
j'utilises php avec MySQL et il me faudrait une fonction qui prend en paramètre le nom d'une table et qui me retourne le nombre de champs de cette table dans une variable de type entier et le nom de chaque champ dans un tableau de chaînes.
Les informations de connection à la base sont ok je cherches juste à récupérer le nombre de champs et le nom de chacun de ces champs.
Si vous connaissez une fonction de ce type, je suis preneur :-D
mici tlm ;-)
Autres pages sur : resolu php mysql recup nombres champs nom champs table
Sethpolma
5 Mai 2006 21:13:48
Il n'en existe pas à ma connaissance des toutes faites. Mais, ce n'est pas bien difficile d'en faire une. Comme ça, à froid :
Quant aux noms de chaque champs... Non, je vois pas là... Faut dire que j'ai pas énormément dormi ces temps-ci, et là ça commence à manquer, le sommeil ! Si ça me vient, je te tiendrais au courant ! ;-)
<?php
function FieldNumber($table)
{
$sql = "SELECT * FROM $table";
$req = mysql_query($sql);
$data = mysql_fetch_array($req);
return sizeof($data);
}
?>
Quant aux noms de chaque champs... Non, je vois pas là... Faut dire que j'ai pas énormément dormi ces temps-ci, et là ça commence à manquer, le sommeil ! Si ça me vient, je te tiendrais au courant ! ;-)
poolos
5 Mai 2006 21:57:15
Contenus similaires
- Changer le nom d'un champ d'une table - Forum
- [Access - Excel ] Lier champ d'une table à excel - Forum
- [Résolu][JS] Remplir champ formulaire d'une page - Forum
- VB: récupérer le max d'un champ, lui ajouter 1 et.. [RESOLU] - Forum
Sethpolma
5 Mai 2006 22:25:54
Kymic@IDN
6 Mai 2006 12:10:37
voila :
$result = mysql_list_tables("base_de_donnees"); // récupère toutes les tables de la base de donnes
while ($row = mysql_fetch_row($result))
{
echo "<b>Table : $row[0]</b><br>";
$fields = mysql_list_fields("base_de_donnees", $row[0] ); //récupère tout les champs d'un table $row étant le tableau de toutes les tables
$columns = mysql_num_fields($fields); // récupère le nombre de champs d'un table
for ($i = 0; $i < $columns; $i++)
{
echo mysql_field_name($fields, $i) . "<br>"; // on affiche tous les champs de la table en cours
}
}
voila si tu as compris ce script liste toutes les tables de ta base de donnée et affiche pour chaque table le nom de tous les champs.
voila avec sa tu as tout pour réussir.
EDIT: je viens de relir ton message et tu as besoin que de sa toi en fait :
$fields = mysql_list_fields("base_de_donnees", "table"); //récupère tout les champs d'un table
$num_de_champs = mysql_num_fields($fields);
PS : le script du 1er qui t'as répondu marche aussi.
donc tu as le choix :-P
$result = mysql_list_tables("base_de_donnees"); // récupère toutes les tables de la base de donnes
while ($row = mysql_fetch_row($result))
{
echo "<b>Table : $row[0]</b><br>";
$fields = mysql_list_fields("base_de_donnees", $row[0] ); //récupère tout les champs d'un table $row étant le tableau de toutes les tables
$columns = mysql_num_fields($fields); // récupère le nombre de champs d'un table
for ($i = 0; $i < $columns; $i++)
{
echo mysql_field_name($fields, $i) . "<br>"; // on affiche tous les champs de la table en cours
}
}
voila si tu as compris ce script liste toutes les tables de ta base de donnée et affiche pour chaque table le nom de tous les champs.
voila avec sa tu as tout pour réussir.
EDIT: je viens de relir ton message et tu as besoin que de sa toi en fait :
$fields = mysql_list_fields("base_de_donnees", "table"); //récupère tout les champs d'un table
$num_de_champs = mysql_num_fields($fields);
PS : le script du 1er qui t'as répondu marche aussi.
donc tu as le choix :-P
poolos
6 Mai 2006 14:14:40
poolos
6 Mai 2006 15:42:46
Voila le résultat final, si ça peut servir à quelqu'un d'autre.
3 Fichiers au final:
- 1 qui représente le programme principal : Essai.php
- 1 qui déclare les fonctions: fonctions.php
- 1 qui permet de se connecter à la base de données : connexion_mysql.php
Normalement,seuls les fichiers essai.php et connexion_mysql doivent être modifiés pour fonctionner chez vous.
:-D
essai.php
fonctions.php
connexion_mysql.php
Voila voila ;-)
[edit]type de données des champs[/edit]
3 Fichiers au final:
- 1 qui représente le programme principal : Essai.php
- 1 qui déclare les fonctions: fonctions.php
- 1 qui permet de se connecter à la base de données : connexion_mysql.php
Normalement,seuls les fichiers essai.php et connexion_mysql doivent être modifiés pour fonctionner chez vous.
:-D
essai.php
<?php
// Affiches le nb de champs et les noms des champs dans une table.
// poolos(arobase)free(point)fr
// CORPS DU PROGRAMME PRINCIPAL
// inclusion de la déclaration des fonctions.
include 'fonctions.php';
// Définition du nom de la base de données et du nom de la table.
$nom_de_la_base_de_donnees = "nom_bdd";
$nom_de_la_table_a_interroger = "nom_table";
// Connexion à la base de données.
include 'connexion_mysql.php';
// APPEL DES FONCTIONS
// renvoi le nombre de champs
$nombredechamps = recup_nbchamps($nom_de_la_base_de_donnees,$nom_de_la_table_a_interroger);
echo '<h2>nombre de champs :</h2>'.$nombredechamps.'<br><br>';
// renvoi le nom des champs
$nomsdeschamps = recup_noms_champs($nom_de_la_base_de_donnees,$nom_de_la_table_a_interroger);
echo '<h2>Noms des champs : </h2>';
for ($i = 0; $i < $nombredechamps; $i++)
{
echo $nomsdeschamps[$i].'<br>';
}
// renvoi le type de données des champs
$typededonnees = recup_type_champs($nom_de_la_base_de_donnees,$nom_de_la_table_a_interroger);
echo '<h2>Type de données des champs : </h2>';
for ($i = 0; $i < $nombredechamps; $i++)
{
echo $typededonnees[$i].'<br>';
}
?>
fonctions.php
<?php
function recup_nbchamps($bdd,$table)
{
//récupère tous les champs de la table $table dans la base de données $bdd.
$champs = mysql_list_fields($bdd,$table);
// Enumère le nombre de champs de la table.
$nb_champs = mysql_num_fields($champs);
return $nb_champs;
}
//fin de la fonction recup_nbchamps($bdd,$table)
function recup_noms_champs($bdd,$table)
{
//récupère tous les champs de la table $table dans la base de données $bdd.
$champs = mysql_list_fields($bdd,$table);
// Enumère le nombre de champs de la table.
$nb_champs = mysql_num_fields($champs);
// rempli le tableau temporaire des noms de champs.
for ($i = 0; $i < $nb_champs; $i++)
{
$tableau_noms_temp[$i] = mysql_field_name($champs, $i);
}
$tableau_noms = array();
for ($i = 0; $i < $nb_champs; $i++)
{
array_push($tableau_noms,$tableau_noms_temp[$i]);
}
return $tableau_noms;
}
//fin de la fonction recup_noms_champs($bdd,$table)
function recup_type_champs($bdd,$table)
{
//récupère tous les champs de la table $table dans la base de données $bdd.
$champs = mysql_list_fields($bdd,$table);
// Enumère le nombre de champs de la table.
$nb_champs = mysql_num_fields($champs);
// rempli le tableau temporaire des types de champs
for ($i = 0; $i < $nb_champs; $i++)
{
$tableau_types_temp[$i] = mysql_field_type($champs, $i);
}
$tableau_types = array();
for ($i = 0; $i < $nb_champs; $i++)
{
array_push($tableau_types,$tableau_types_temp[$i]);
}
return $tableau_types;
}
//fin de la fonction recup_type_champs($bdd,$table)
?>
connexion_mysql.php
<?php
// Connexion à la base de données.
// Infos sur la base.
$Hote_de_la_bdd = "hote_bdd";
$Utilisateur = "Utilisateur";
$Mot_de_passe = "mot_de_passe";
$Nom_base_de_donnees = "nom_bdd";
// Connexion à MySQL et sélection de la base de données.
$Lien_MySQL = mysql_connect($Hote_de_la_bdd,$Utilisateur,$Mot_de_passe);
mysql_select_db($Nom_base_de_donnees,$Lien_MySQL);
?>
Voila voila ;-)
[edit]type de données des champs[/edit]
Kymic@IDN
6 Mai 2006 18:02:25
nikel poolos ! sa fait plaisr d'aider quelqu'un qui s'est déja renseigné sur le php avant , et qui le connait avant. Vu comme tu as très bien su te servir de ce qu'on ta filé comme indice , sans te filer tout le script complet !
merci sa me fait plaisir par ce qu'à force de voir des posts demandant de l'aide pour faire un script en php et que tu t'apperçois que le type n'a jamais entendu parler de ce language bha sa dégoute un peu....
heuresement il y a encore des gens comme Poolos !!!!
lol !!
++
et sa me fait plaisir de t'avoir aidé sincérement ! ^^
merci sa me fait plaisir par ce qu'à force de voir des posts demandant de l'aide pour faire un script en php et que tu t'apperçois que le type n'a jamais entendu parler de ce language bha sa dégoute un peu....
heuresement il y a encore des gens comme Poolos !!!!
lol !!
++
et sa me fait plaisir de t'avoir aidé sincérement ! ^^
poolos
6 Mai 2006 18:23:29