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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    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 confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    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 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    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 éclairé
    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
    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 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    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, 14h12
  2. Réponses: 7
    Dernier message: 13/03/2014, 08h33
  3. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  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, 12h33
  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, 09h04

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