Afficher le nom des colonnes d'une table via une requete SQL
Résolu/Fermé
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
-
16 juin 2017 à 10:21
Ndediop Messages postés 101 Date d'inscription jeudi 2 mars 2017 Statut Membre Dernière intervention 5 juillet 2017 - 5 juil. 2017 à 10:21
Ndediop Messages postés 101 Date d'inscription jeudi 2 mars 2017 Statut Membre Dernière intervention 5 juillet 2017 - 5 juil. 2017 à 10:21
A voir également:
- Requete sql pour afficher les champs d'une table
- Table ascii - Guide
- Table des matières word - Guide
- Afficher appdata - Guide
- Afficher les commentaires word - Guide
- Afficher mot de passe wifi android - Guide
4 réponses
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
16 juin 2017 à 11:02
16 juin 2017 à 11:02
Bonjour,
Même remarque que d'habitude ....
Montre ce que tu as essayé et qui ne "marche pas" ... et nous verrons pour te le corriger;
Même remarque que d'habitude ....
Montre ce que tu as essayé et qui ne "marche pas" ... et nous verrons pour te le corriger;
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
16 juin 2017 à 11:19
16 juin 2017 à 11:19
Bonjour,
Pour ce genre de requête qui touche au fonctionnement propre du SGBD, il est indispensable de savoir lequel tu utilises. Chaque SGBD aura un comportement différent.
Xavier
Pour ce genre de requête qui touche au fonctionnement propre du SGBD, il est indispensable de savoir lequel tu utilises. Chaque SGBD aura un comportement différent.
Xavier
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
16 juin 2017 à 11:26
16 juin 2017 à 11:26
J'utilise mysql comme SGBD sur wamp.
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
Modifié le 19 juin 2017 à 11:36
Modifié le 19 juin 2017 à 11:36
Bonjour,
J'ai mis le bd_name.table_name afin de voir ce que ça donne mais ça reviens au même ya pas de changement du coups voila le code avec la requête:
J'ai mis le bd_name.table_name afin de voir ce que ça donne mais ça reviens au même ya pas de changement du coups voila le code avec la requête:
<div id="champsoper"> <select name="champsoper" id="champsoper"> <option value="">** Sélectionner... **</option> $requete="SHOW COLUMNS FROM bde.operations"; $resultats= $bdd_connection->query($requete); while($ligne = $resultats->fetch()){ echo'<option value=""></option>'; } echo'</select> </div></div>
Utilisateur anonyme
Modifié le 19 juin 2017 à 14:00
Modifié le 19 juin 2017 à 14:00
Bonjour
La requête n'est pas mauvaise, mais il y a d'autres problèmes :
- il manque la balise <?php avant le $requete - je suppose que le manque d'apostrophe et de ?> à la fin de la partie PHP viennent d'un mauvais découpage.
- il y a deux éléments avec le même id (même si ça n'empêche pas la requête de de marcher)
- dans la dernière version que tu montres, il n'y a plus de $ligne[0] dans les <option>, c'est bien dommage
- enfin, si comme moi tu as choisi l'option FETCH_ASSOC dans la connexion à ta base de données, le $ligne[0] ne va pas marcher, il va falloir utiliser $ligne['Field']
Ceci corrigé, ça marche.
La requête n'est pas mauvaise, mais il y a d'autres problèmes :
- il manque la balise <?php avant le $requete - je suppose que le manque d'apostrophe et de ?> à la fin de la partie PHP viennent d'un mauvais découpage.
- il y a deux éléments avec le même id (même si ça n'empêche pas la requête de de marcher)
- dans la dernière version que tu montres, il n'y a plus de $ligne[0] dans les <option>, c'est bien dommage
- enfin, si comme moi tu as choisi l'option FETCH_ASSOC dans la connexion à ta base de données, le $ligne[0] ne va pas marcher, il va falloir utiliser $ligne['Field']
Ceci corrigé, ça marche.
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
19 juin 2017 à 14:23
19 juin 2017 à 14:23
Merci pour la réponse en fait ce que je vous ai montré c'est juste une portion de mon code mais c'est du HTML et j'ai mis des td et tr pour mettre des tables, mais j'ai mis des balises php pour la connexion à la base de données, je vais essayer les $ligne['Field'] pour voir et je vous reviendrai.
- c'est juste une portion de mon code
C'est très bien de simplifier le code pour le montrer ici, mais comment on distingue les erreurs qu'il y avait vraiment dans ton code de celles que tu rajoutes en le simplifiant ?
- j'ai mis des balises php pour la connexion à la base de données
C'est très bien aussi, mais celle dont je te parle ne concerne pas la connexion à la base de données.
C'est très bien de simplifier le code pour le montrer ici, mais comment on distingue les erreurs qu'il y avait vraiment dans ton code de celles que tu rajoutes en le simplifiant ?
- j'ai mis des balises php pour la connexion à la base de données
C'est très bien aussi, mais celle dont je te parle ne concerne pas la connexion à la base de données.
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
>
Utilisateur anonyme
19 juin 2017 à 14:57
19 juin 2017 à 14:57
J'ai 1427 lignes de codes si vous voulez je peux vous les envoyer?
Utilisateur anonyme
>
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
19 juin 2017 à 15:27
19 juin 2017 à 15:27
C'était juste pour dire qu'il faut bien qu'on signale toutes les erreurs, on ne peut pas deviner celles qu'il y avait vraiment au départ et celles que tu as ajoutées.
Sinon, pour le $ligne[0], utilises-tu des options particulières lors de la connexion ? Si ce n'est pas le cas, le $ligne['Field'] ne donnera rien de plus.
Sinon, pour le $ligne[0], utilises-tu des options particulières lors de la connexion ? Si ce n'est pas le cas, le $ligne['Field'] ne donnera rien de plus.
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
>
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
19 juin 2017 à 15:36
19 juin 2017 à 15:36
voila le code pour une rangée de ma table car elles sont toutes identiques pour que vous puissiez voir ce que je fais et me donnez un coups de pouce.
<!DOCTYPE html> <html> <body> <?php session_start(); ?> <?php require('../../bdconnect.php'); ?> </td></tr></table></td></tr></table></td></tr></table></td></tr></table></div></td> </tr> <tr> <td><div id="champs" objImgPliage="ctrl_59423ad0b488b0-47625125_549" objBlocPliage="ctrl_59423ad0b488b0-47625125_550"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="styleCadreBloc1"> <tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr style="background-color: #FF8C00;"> <td class="styleTitreBloc2">Champs du tableau</td></tr></table></td></tr><tr id="ctrl_59423ad0b488b0-47625125_550" style="background-color: #FFFFFF;"><td class="styleCorpsBloc"><table width="100%" border="0" cellspacing="0" cellpadding="0" onDblClick=""><tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="100%" valign="top"><table width="100%" border="0" cellspacing="3" cellpadding="0"><tr><td class="styleFicheIntitule"><div>Champs 1 :</div></td><td nowrap valign="top"> <!-- CTRL "Liste Table" : lstGroupeChamps[1] --> <div id="lstGroupeChamps[1]" ident="_objListeItem" nomObjet="lstGroupeChamps[1]" class="styleListeExt" style="width: 120px" classItem="styleItemListe" verrou="0" nomDivErr="ctrl_59423ad0b488b0-47625125_144" nomCtrlValeur="ctrl_59423ad0b488b0-47625125_145" valeurNull="-1" texteNull="..."> <div> <div> <select id="tableoper" name="tableoper" class="form-control"> <option value="">...</option> <option value="01-operations">operations</option> <option value="02-operations">operations</option> <option value="03-operations">operations</option> <option value="04-operations">operations</option> <option value="05-operations">operations</option> <option value="06-operations">operations</option> <option value="07-operations">operations</option> <option value="08-operations">operations</option> </select> </div></div> </td></tr></table></td> </tr> </table></td> </tr> </table> <script language="javascript" type="text/javascript">startJava();</script> </body> </html>
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
21 juin 2017 à 21:26
21 juin 2017 à 21:26
Bonjour,
Donc voici :
1 - Active la gestion des erreurs dans la connexion à ta bdd
en pdo : comme ceci https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
2 - Active l'affichage des erreurs PHP en ajoutant au début de tes fichiers php les lignes suivantes
3 - En général .. on place le maximum de code php AVANT le code html !
4 - Voici un exemple qui fonctionne parfaitement :
Donc voici :
1 - Active la gestion des erreurs dans la connexion à ta bdd
en pdo : comme ceci https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
<?php try{ $bdd = new PDO ('mysql:host=localhost;dbname=bde;charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
2 - Active l'affichage des erreurs PHP en ajoutant au début de tes fichiers php les lignes suivantes
error_reporting(E_ALL); ini_set('display-errors','on');
3 - En général .. on place le maximum de code php AVANT le code html !
4 - Voici un exemple qui fonctionne parfaitement :
<?php //-------------------------------------// // Affichage des erreurs PHP //-------------------------------------// error_reporting(E_ALL); ini_set('display-errors','on'); //-------------------------------------// //démarrage session //-------------------------------------// session_start(); //-------------------------------------// //connexion à la bdd //-------------------------------------// require_once 'bddconnect.php'; //-------------------------------------// //liste des champs de la table //-------------------------------------// $sql = "SHOW COLUMNS FROM bde.operations"; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute(); $liste_champs = $requete->fetchAll(); //on stocke le resultat dans un array }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } ?> <!DOCTYPE html> <html> <body> <div id="champsoper"> <select name="champsoper" id="champsoper"> <option value="">** Sélectionnez.**</option> <?php //-------------------------------------// // Boucle sur l'array si pas vide //-------------------------------------// if(!empty($liste_champs)){ foreach($liste_champs as $champ){ $field = $champ['Field']; $Type = $champ['Type']; echo "<option value='$field'>$field ($Type) </option>"; } } ?> </select> </div> </body> </html>
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
Modifié le 22 juin 2017 à 09:38
Modifié le 22 juin 2017 à 09:38
Bonjour Jordane,
Je viens de voir votre message merci pour la réponse je ferai ce que vous m'avez dit et je vous reviendrai, mais une autre question, j'ai 28 lignes et chaque ligne je dois faire la même chose, donc avant chaque option des opérations je dois mettre d’abords le code PHP? Car je les ai mis sous forme de tableau.
Merci d'avance!
Cordialement,
ndediop
Je viens de voir votre message merci pour la réponse je ferai ce que vous m'avez dit et je vous reviendrai, mais une autre question, j'ai 28 lignes et chaque ligne je dois faire la même chose, donc avant chaque option des opérations je dois mettre d’abords le code PHP? Car je les ai mis sous forme de tableau.
Merci d'avance!
Cordialement,
ndediop
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
>
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
22 juin 2017 à 10:22
22 juin 2017 à 10:22
j'ai 28 lignes
28 lignes de quoi ??
Tu veux afficher la liste des champs (de la même table) dans tes 28 lignes ??
Dans ce cas il n'y a que la boucle à recopier pour générer tes options...
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
>
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
22 juin 2017 à 10:28
22 juin 2017 à 10:28
-Tu veux afficher la liste des champs (de la même table) dans tes 28 lignes ??
Oui c'est ça que je veux afficher
-Dans ce cas il n'y a que la boucle à recopier pour générer tes options...
D'accords ça marche merci!
Oui c'est ça que je veux afficher
-Dans ce cas il n'y a que la boucle à recopier pour générer tes options...
D'accords ça marche merci!
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
>
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
22 juin 2017 à 15:32
22 juin 2017 à 15:32
Salut jordane,
J'ai le résultat que je voulais car j'ai testé pour un label je continuerai pour le reste, mais le problème en est que j'ai la liste des champs avec leur type int ou varchar comment pourrai-je faire pour enlever le type?
Merci d'avance!
Cordialement,
J'ai le résultat que je voulais car j'ai testé pour un label je continuerai pour le reste, mais le problème en est que j'ai la liste des champs avec leur type int ou varchar comment pourrai-je faire pour enlever le type?
Merci d'avance!
Cordialement,
jordane45
Messages postés
38397
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 janvier 2025
4 732
>
Ndediop
Messages postés
101
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
5 juillet 2017
22 juin 2017 à 15:45
22 juin 2017 à 15:45
Heu... c'est du simple php ...
Il suffit de modifier la ligne
Tu devrais trouver tout seul je pense.....
Il suffit de modifier la ligne
echo "<option value='$field'>$field ($Type) </option>";
Tu devrais trouver tout seul je pense.....
16 juin 2017 à 11:17