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 :

question bete sur les boucles [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2013
    Messages : 34
    Points : 28
    Points
    28
    Par défaut question bete sur les boucles
    Bonjour a tous
    je souhaite faire une requête pour afficher des fiches crée par les utilisateurs dont la date s'insert automatiquement.

    j'aimerais que l'on voit

    par exemple :

    22 janvier 2013

    fiche 1tel
    fiche truc

    21janvier 2013
    fiche bidule
    etc...
    je ne vois pas quel boucle il faut faire(ou peu être une dans l'autre pour permettre un tel affichage).
    je n'ai rien trouvé de probant sur internet.
    je suis persuadé que la réponse est simple mais la je sèche complet...

    d'avance merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    sous quel forme sont les données à afficher ? Requête SQL ?

    tu peut avoir plusieurs solution la "forme" de tes données.
    une réponse vous a permis d'avancer ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331
    Par défaut
    Salut,

    Dans ta base, tu as la date qui est raccrochée au différentes fiches par utilisateur ?

    Si oui, avec une boucle WHILE, tu dois t'en sortir

    1) Tu créé une variable $date_debut =''; en dehors de la boucle
    2) Tu fais ta boucle while
    3) Dans ta boucle, tu test la date début et ta réelle date
    4) Si c'est la même tu continues ton tableau
    5) Sinon, tu créer une nouvelle date et affiche les nouvelles fiches
    et tu réaffectes ta nouvelle date à la variable $date_debut

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2013
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    merci pour vos réponse

    @Exia93 oui les données affiché sont issu d'une requête mysql

    @heretik25 oui chaque fiche a son entrée DATE TIME.

    je ne saisi pas a partir de 3 comment tester voici mon debut de code:
    datecrea est la date des fiches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    //recupération des fiches :
    $req = $bdd->prepare('SELECT * FROM creation JOIN avatar_upload ON id = avatar_upload.compte WHERE valide = 2 ORDER BY datecrea DESC');
    $req->execute(array());
    $donnees = $req->fetch();
     
    $date_debut =''
    ?>
     
    // dans le html 
    <?php   while ($donnees=$req->fetch())
     
    ?>

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    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
    //recupération des fiches :
    $req = $bdd->prepare('SELECT * FROM creation JOIN avatar_upload ON id = avatar_upload.compte WHERE valide = 2 ORDER BY datecrea DESC');
    $req->execute(array());
     
    if( $donnees = $req->fetch() ){
     
        $date_debut = '';
        do
        {
            if( $date_debut != $donnes['dateCreation'] ){
                /* Nouvelle date donc fermeture du block de la date précedent
                 * Ouverture du nouveau bloc + ajout des données courante
                 */
            }else{
               /*Toujours la même date que la précédente donc on affiche les données courante sans modifier l'affichage
                */
            }
     
            $date_debut = $donnees['dateCreation'];
     
        }while ($donnees=$req->fetch());
    }else{
        //aucune données retourné par la requête.
    }
    ?>
    L'utilisation de la boucle do{}while(); plûtot que la boucle while(){} est du au fait que l'on utilise la fonction fetch() plus haut qui a pour but de vérifier si la requête retourne un résultat,

    donc si l'on aurait utilisé une boucle while la première ligne de la requête aurait été zappé.
    une réponse vous a permis d'avancer ?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2013
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    merci Exia93
    mais au risque de passer pour un gros boulet.. j'avoue je ne comprends pas trop tes boucles.
    les valeurs que je voudrais afficher son: $donnees['nom']; donnees['prenom']; $donnees['ville'];
    et bien sur qu'il affiche la date. voila comment j'ai intégré les variables a ton script.
    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
    $req = $bdd->prepare('SELECT * FROM creation JOIN avatar_upload ON id = avatar_upload.compte WHERE valide = 2 ORDER BY datecrea DESC');
    $req->execute(array());
    if( $donnees = $req->fetch() ){
     
        $date_debut = '';
     
        do
        {   echo $date_debut; 
            if($date_debut != $donnees['datecrea'] )
    		{
            $nom= $donnees['nom'];                                 
            $prenom = $donnees['prenom'];                                 
            $ville = $donnees['ville'];                                                                                      
            }
    		else
    		{
            echo $nom;
    		echo $prenom;
    		echo $ville;
    		}
     
            $date_debut = $donnees['datecrea'];
     
        }while ($donnees=$req->fetch());
    }else{ 
    }
    mais la il m'affiche uniquement les dates.....

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    a tu plusieurs date équivalente ?
    une réponse vous a permis d'avancer ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2013
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    pour les tests j'ai 5 fiches
    voici les dates
    2013-01-18 12:15:00
    2013-01-18 14:00:00
    2013-01-22 18:00:00
    2013-01-22 19:00:00
    2013-01-23 14:56:12

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Avec cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($date_debut != $donnees['datecrea'] )
    		{
            $nom= $donnees['nom'];                                 
            $prenom = $donnees['prenom'];                                 
            $ville = $donnees['ville'];                                                                                      
            }
    tu dit que si $date_debut est différent de $donnees['datecrea'] tu attrbiut à $nom la valeur de $donnees['nom'], etc pour le reste des colonne de la BDD,

    ta colonne datecrea est un Date time donc elle est composé de :
    année-mois-jour heure:minute:seconde,

    dans tes test tu n'a aucune date identique vue que l'heure est différente,

    donc tu n'entre jamais dans la condition else{}.
    une réponse vous a permis d'avancer ?

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Janvier 2013
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    ok un grand merci a toi pour toutes ces explications

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

Discussions similaires

  1. question bete sur les structures en C++
    Par nabil.g dans le forum C++
    Réponses: 4
    Dernier message: 23/09/2013, 19h46
  2. [Débutant] question bete sur les boucles
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 12
    Dernier message: 05/03/2010, 16h26
  3. Question bete, sur les functions en php
    Par clemsouz dans le forum Langage
    Réponses: 8
    Dernier message: 03/08/2006, 16h10
  4. [Système] question bete sur les pseudo frames
    Par balou dans le forum Langage
    Réponses: 5
    Dernier message: 12/10/2005, 13h11
  5. [Struts] question bete sur les Action et Form
    Par seb_fou dans le forum Struts 1
    Réponses: 2
    Dernier message: 06/09/2004, 15h24

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