[PHP]Récupérer le nom de la clé Primaire
Résolu/Fermé
Mouradif
Messages postés
26
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
5 novembre 2019
-
27 juin 2008 à 16:15
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 - 28 juin 2008 à 23:30
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 - 28 juin 2008 à 23:30
A voir également:
- [PHP]Récupérer le nom de la clé Primaire
- Clé windows 10 gratuit - Guide
- Cle usb non reconnu - Guide
- Recuperer cle windows - Guide
- Recuperer video youtube - Guide
- Compte piraté facebook comment le recuperer - Guide
3 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
27 juin 2008 à 16:32
27 juin 2008 à 16:32
Salut,
Utilise describe:
http://dev.mysql.com/doc/refman/5.0/fr/describe.html
Un exemple avec une table qui s'appele machin:
Utilise describe:
http://dev.mysql.com/doc/refman/5.0/fr/describe.html
Un exemple avec une table qui s'appele machin:
$res = mysql_query('DESCRIBE machin'); $primary_key = ''; while($line = mysql_fetch_array($res)) { if($line['key'] == 'PRI'){ $primary_key = $line['Field']; //Nom de la colonne concernée break; } }
BlueMind
Messages postés
583
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
22 juillet 2008
159
27 juin 2008 à 16:27
27 juin 2008 à 16:27
Salut,
Je ne connais pas php mais je peux déjà te dire que tu n'arriveras pas à trouver le nom de la clé de la table comme ça. En effet, dans $data tu retrouves la valeur des champs de la table et pas la définition de la table elle-même
Je ne connais pas php mais je peux déjà te dire que tu n'arriveras pas à trouver le nom de la clé de la table comme ça. En effet, dans $data tu retrouves la valeur des champs de la table et pas la définition de la table elle-même
Mouradif
Messages postés
26
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
5 novembre 2019
36
28 juin 2008 à 01:45
28 juin 2008 à 01:45
:D Merci beaucoup kilian, je ne conaissais pas la fonction DESCRIBE en SQL. Si j'ai bien compris, elle retourne le nom des champs d'une table ?
En fait, j'ai cherché parmi les fonctions sur les arrays et j'ai trouvé une solution plus simple.
D'abord, pour répondre à BlueMind, si tu fais un print_r de $data tu trouves
or, le fruit de mes recherches m'a mené à la fonction array_keys($array) qui agit comme DESCRIBE mais sur un array. Je fais :
Ca me donne :
donc pour la fonction complète au cas où quelqu'un d'autre en aie besoin :
En fait, j'ai cherché parmi les fonctions sur les arrays et j'ai trouvé une solution plus simple.
D'abord, pour répondre à BlueMind, si tu fais un print_r de $data tu trouves
[0] => Valeur du champs 1 [Nom du champs 1] => Valeur du champs 1 [1] => Valeur du champs 2 [Nom du champs 2 => Valeur du champs 2 etc...
or, le fruit de mes recherches m'a mené à la fonction array_keys($array) qui agit comme DESCRIBE mais sur un array. Je fais :
$keys = array_keys($data); print_r($keys)
Ca me donne :
[0] => 0 [1] => nom du champs 1 [2] => 1 [3] => nom du champs 2 [4] => 2 [5] => nom du champs 3
donc pour la fonction complète au cas où quelqu'un d'autre en aie besoin :
function primary($table) { $sql = mysql_query("select * from `$table`"); $data = mysql_fetch_array($sql); $keys = array_keys($data); $prim = $keys[1]; return $prim; }
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
28 juin 2008 à 02:42
28 juin 2008 à 02:42
$keys[1] ne te donnera pas necessairement la clé primaire. Ca marche peut peut être pour ta table mais ça peut ne pas marcher pour un autre. Tout dépend dans quel ordre tu as créé tes champs.
Mouradif
Messages postés
26
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
5 novembre 2019
36
>
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
28 juin 2008 à 14:47
28 juin 2008 à 14:47
rhooo :D soit pas si rabat-joie !! en ce qui me concerne j'ai jamais mit de clé primaire en 3eme position sur une table ni rencontré quelqu'un qui le faisais et je suis sûr que toi même tu mets toutes tes clés primaires en première position dans la table.
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
>
Mouradif
Messages postés
26
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
5 novembre 2019
28 juin 2008 à 15:01
28 juin 2008 à 15:01
Ben ça arrive :-)
D'ailleurs elle doit être en deuxième position dans ta table, sinon ce serait $keys[0] :-)
D'ailleurs elle doit être en deuxième position dans ta table, sinon ce serait $keys[0] :-)
Mouradif
Messages postés
26
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
5 novembre 2019
36
>
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
28 juin 2008 à 22:48
28 juin 2008 à 22:48
bah non justement ! puisque $data ( qui est = mysql_fetch_array($sql)) est fait comme ca :
[0] -> valeur
[Nom du champ] -> valeur
[1] -> valeur2
[Nom du champ 2] -> valeur2
de façon à ce qu'on puisse utiliser $data[0] ou $data[nom_du_champ] invariablement.
$keys[0] contient donc "0" (toujours)
le nom du premier champs est dans $keys[1]
[0] -> valeur
[Nom du champ] -> valeur
[1] -> valeur2
[Nom du champ 2] -> valeur2
de façon à ce qu'on puisse utiliser $data[0] ou $data[nom_du_champ] invariablement.
$keys[0] contient donc "0" (toujours)
le nom du premier champs est dans $keys[1]
Dr Zoidberg
Messages postés
529
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015
100
>
Mouradif
Messages postés
26
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
5 novembre 2019
28 juin 2008 à 23:30
28 juin 2008 à 23:30
Salut,
Une clé primaire n'est effectivement pas 'du tout' forcement en 1er et de plus elle peut être composée de plusieurs colonnes, ce n'est pas si rare.
Comme il a été dit il faut utiliser describe ou 'show columns' pour être propre.
Une clé primaire n'est effectivement pas 'du tout' forcement en 1er et de plus elle peut être composée de plusieurs colonnes, ce n'est pas si rare.
Comme il a été dit il faut utiliser describe ou 'show columns' pour être propre.