IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

recuperer données table dont je ne connais pas les noms des colonnes [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut recuperer données table dont je ne connais pas les noms des colonnes
    Bonjour,

    Bon j'ai une table mysql dont je connais pas les noms de quelques colonnes .

    table etudiant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    nom
    email
    seance1
    seance2
    ...
    donc j'ai récuperer les nom des colonnes dont le début commence par 'sea'. et je les concatener avec une chaine pour construire une requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $stockercolonne='';
    $requetecolonne="SELECT column_name FROM information_schema.columns WHERE  table_name = 'etudiant' AND table_schema='ma_base' AND column_name LIKE 'sea%'";
     
    			 $resultatcolonnes= $connect->query($requetecolonne); 
    			 while($colonnes = $resultatcolonnes->fetch_assoc())
                 {
    			 $stockercolonne.=','.$colonnes['column_name'];
    	    }

    Maintenant je veux afficher dans une table html la colonne nom et les autres qui commencent par 'sea', donc voila la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $requeteselect="select nom".$stockercolonne." from etudiant where email='".$_SESSION['login_user']."'";
    			 while($recuperervaleur = $requeteselect->fetch_assoc())
    {
    			 echo '<td><center> '.$recuperervaleur['nom'].' </td>';
                                 echo '<td><center> '.$recuperervaleur['!!!!!!!!!!!!'].' </td>'; 
    }
    c'est ici que je me suis bloqué. je connaie pas les autres noms de colonnes.
    il y a peut étre une posibilité de faire un while dans un while mais je sais pas comment.

    Merci

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    8 561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 8 561
    Points : 13 242
    Points
    13 242
    Par défaut
    ce que vous récupérez est un tableau associatif de ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $recuperervaleur = [
        "nom" => "Elysa",
        "email" => "bulot96@yopmail.fr",
        "seance1" => "22",
        "seance2" => "47",
        "seance3" => "abc",
    ];
    donc vous pouvez le parcourir comme cela par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach ($recuperervaleur as $cle => $valeur) {
     
        // au 1er passage, $cle contient "nom" et $valeur contient "Elysa"
     
     
     
    }

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    juin 2008
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : juin 2008
    Messages : 2 076
    Points : 3 539
    Points
    3 539
    Billets dans le blog
    8
    Par défaut
    Pour comprendre comment chaque row de ton tableau PHP est construit, teste ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while($recuperervaleur = $requeteselect->fetch_assoc())
    {
    	//echo '<td><center> '.$recuperervaleur['nom'].' </td>';
        //echo '<td><center> '.$recuperervaleur['!!!!!!!!!!!!'].' </td>'; 
    	echo '<pre>';
    	print_r($recuperervaleur);
    	echo '</pre>';
    }
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    mai 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : mai 2009
    Messages : 447
    Points : 241
    Points
    241
    Par défaut
    Merci mathieu
    Merci Dendrite

    le problème c'est que je ne savais pas le nombre de séances stocké dans la table donc x colonne. c'est pour cela que j'ai récuperer toutes les noms de colonnes et les stocker dans la variabale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $stockercolonne.=','.$colonnes['column_name'];
     
    et donc peut avoir comme valeur par exemple :
     
    ,seance1,seance2
    et je viens aprés pour contruire la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requeteselect="select nom".$stockercolonne." from etudiant where email='".$_SESSION['login_user']."'";
    et aprés je l'exécute et s'est marché parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $requeteselect="select nom_arabe".$stockercolonne." from etudiant where email='".$_SESSION['login_user']."'";
    				$recuperervaleur = $connect->query($requeteselect); 
    				$colonnes = $recuperervaleur->fetch_assoc();
    				foreach ($colonnes as $cle => $valeur) {
     
    		                echo '<td><center> '.$cle.' </td>';
    				echo '<td><center> '.$valeur.' </td>';
     
    				}
    Merci

  5. #5
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    juin 2008
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : juin 2008
    Messages : 2 076
    Points : 3 539
    Points
    3 539
    Billets dans le blog
    8
    Par défaut
    Je me trompe ou tu ajoutes des champs seance_n à ta table etudiant au fur et à mesure que des étudiants font des séances ?
    Ce n'est pas du tout du tout une bonne pratique.
    Il faut qu'une table augmente "verticalement" pas horizontalement...
    C'est la base des tables RELATIONNELLES.
    Tu devrais procéder ainsi : faire 2 tables.

    une table etudiant (id, nom, prenom, email)

    et une table seance (id, titre, etudiant_id,debut, fin) où je ne sais quels champs qui concernent la séance...

    Ensuite, tu remets tout ça dans une vue qui évidemment, sera plus intuitive pour un humain :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create or replace view v_seances as 
    select s.id as seance_id,s.titre as seance_titre,s.debut,s.fin,e.id as etudiant_id,e.nom,e.prenom,e.email
    from seance s
    inner join etudiant e on s.etudiant_id = e.id
    order by s.id desc, e.nom, e.prenom
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Verifier l'existance d'un fichier dont je ne connais pas le nom
    Par Fazerting dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 05/07/2017, 15h12
  2. Réponses: 7
    Dernier message: 13/03/2014, 09h33
  3. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 12h03
  4. Une classes dont je ne connais pas le nom :(
    Par Fy_Hertz dans le forum Windows
    Réponses: 10
    Dernier message: 16/01/2006, 13h33
  5. curseur sur une table dont on ne connaît pas le nom
    Par NPortmann dans le forum Oracle
    Réponses: 4
    Dernier message: 12/07/2005, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo