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 :

Lecture de données de la BDD et utilisation de ces données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Par défaut Lecture de données de la BDD et utilisation de ces données
    Bonjour je voudrai faire une requete a ma BDD :

    J'ai un tableau de données avec une colonne "mois". (chaque mois pouvant appraitre X fois sur X lignes).

    Je voudrais lire la colonne "mois", et obtenir chaque mois apparut au moins une fois dans une ligne, mais je ne vois pas comment m'y prendre.

    (exemple)
    colonne mois
    janvier
    janvier
    février
    mars
    avril
    mars

    me donnerai comme résultat : janvier, février, mars, avril.

    Ensuite je voudrai obtenir ces résultats pour faire une requete du type "SELECT nom WHERE mois = janvier" (et ensuite passer au mois suivant).

    Merci de votre aide !

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 319
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 319
    Billets dans le blog
    17
    Par défaut
    Pourrais-tu donner un exemple complet, mais court, de ce que tu souhaites faire ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Par défaut
    j'ai avancé sur une partie, j'explique ce qu'il me manque :

    J'ai une table avec comme données les mois et l'id des inscrits (nom table : "asco"). et une table avec comme données l'id des inscrits et le nom des inscrits (nom "inscritionaj").

    je liste les mois ou il ya des inscrits :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mysql_select_db($database_sql, $sql);
    $query_Recordset1 = "SELECT DISTINCT  acsco.mois FROM acsco";
    $Recordset1 = mysql_query($query_Recordset1, $sql) or die(mysql_error());
     
     
    while ($row_Recordset1 = mysql_fetch_assoc($Recordset1))    
    	{ $mois = $row_Recordset1['mois'];
     
    	 	echo "<p>".$row_Recordset1['mois']."</p>"; }
    je voudrais ensuite utiliser cette requete qui liste les noms des inscrits pour chaque mois (variable $mois) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query_Recordset2 = "SELECT acsco.asco_adhid, inscriptionaj.adh_nom FROM acsco, inscriptionaj WHERE acsco.mois = '$mois' AND  inscriptionaj.adh_id =  acsco.asco_adhid";
    je voudrais obtenir un affichage sous cette forme de tableau :

    janvier | février |mars |
    inscrit1 |inscrit1 |inscrit1 |
    inscrit2 |inscrit2 |inscrit2 |

    je ne sais pas comment bien intégrer la boucle dans la boucle, quand j'essaie, mon tableau est soit presenté nimporte comment, soit il manque des données !

    en esperant que ce soit assez clair pour etre compris, merci de votre aide

  4. #4
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Hello,

    Bon ben je vais essayer de m'y coller.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    mysql_select_db($database_sql, $sql);
    $query_Recordset1 = "SELECT DISTINCT  acsco.mois FROM acsco";
    $Recordset1 = mysql_query($query_Recordset1, $sql) or die(mysql_error());
     
    mysql_select_db($database_sql, $sql);
    $query_Recordset2 = "SELECT acsco.asco_adhid, acsco.mois, inscriptionaj.adh_nom FROM acsco
    LEFT JOIN inscriptionaj ON  inscriptionaj.adh_id =  acsco.asco_adhid";
    $Recordset2 = mysql_query($query_Recordset2, $sql) or die(mysql_error());
     
     
    $x=0; #compte les mois
    $colmois = 6; #Nb de colonne par mois
     
    echo '<table width="90%" border="1" cellspacing="2" cellpadding="2"><tr>';
    while ($row_Recordset1 = mysql_fetch_assoc($Recordset1))    { 
    $x=$x+1;
    echo "<td><b>".$row_Recordset1['mois']."</b><br>";
           while ($row_Recordset2 = mysql_fetch_assoc($Recordset2))    {
     
              if ($row_Recordset1['mois'] == $row_Recordset2['mois']) {
              echo $row_Recordset2['asco_adhid'].' '.$row_Recordset2['adh_nom'].'<br>';
              }#end if
     
           }#end while $row_Recordset1
    echo '<td>';
     
    #si x = colmois on change de ligne
    if ($x >= $colmois) {
    echo '</tr><tr>';
    $x=0;
    }
     
     
    }#end while $row_Recordset1
    echo '</tr></table>';
    En gros dans la requete 2 j'ai rajouté le mois, ce qui te permet de comparer le mois de la requete 1 au mois de la requete 2, si cela concorde tu affiches le nom...
    J'ai également mis un compteur paramétrable ($colmois), qui te permet de dire si tu veux 6 mois par ligne, ou 3 ou 2...


    Voila, merci de nous dire si cela a fonctionné.
    @+
    cadou

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Par défaut
    Merci beaucoup pour le code, c'est presque ca, mais helas il y'a le presque :/

    en effet, ca marche bien pour le premier mois, mais ensuite seul le mois est affiché et plus le nom des inscrits, j'ai eu beau essayer d'adapter le code, je n'ai pas trouvé ce qui cloche !

    EDIT : je viens de trouver, il fallait simplement mettre la 2eme requete dans la boucle et pas avant

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

Discussions similaires

  1. [Mysql] Donnée XML >vers> BDD
    Par largiss dans le forum XQUERY/SGBD
    Réponses: 14
    Dernier message: 28/02/2017, 17h51
  2. [MySQL] Utiliser des données d'une BDD dans un lien pour image
    Par clairetj dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/06/2015, 15h48
  3. Réponses: 8
    Dernier message: 18/09/2007, 11h25
  4. [VB.NET] Composant utilisée pour changer donnée access
    Par moust dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2005, 10h44
  5. Stockage de données cartographiques en BDD
    Par Mack.51 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 16/06/2004, 12h48

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