Je n'arrive pas à faire un truc avec PHP/MySQL... (débutant)

Rechercher

Je n'arrive pas à faire un truc avec PHP/MySQL... (débutant)

Par thejoker  -  1 reponse  -  Le 21/01/2016 23:14  -  Editer  - 

Bonjour à tous ! :)

Bon, je suis vraiment débutant, ce n'est pas du tout mon métier, mais je cherche à programmer un petit truc pour les besoins de mon boulot...

Voilà, j'ai une table MySQL qui a cette structure :

    +------+--------+---------+  
    | jour | auteur | contenu |  
    +------+--------+---------+  
    | 1    | toto   | blabla  |  
    | 1    | bob    | coucou  |  
    | 2    | toto   | sjfgljq |  
    | 2    | bob    | hello   |  
    | 3    | toto   | wesh!   |  
    | 4    | toto   | bonjour |  
    | 4    | bob    | salut   |  
    +------+--------+---------+  

Je voudrais faire un script PHP qui, pour un auteur donné, liste tous ses contenus entre le jour 1 et le jour N... mais qui affiche aussi "Il n'y a rien" quand il y a un jour où il n'a pas de contenu (comme par exemple ici Bob qui n'a rien en jour 3).

En gros, pour $auteur="Bob" et $jourmax=4, dans cet exemple, je voudrais que mon script retourne :

  • Jour 4 : salut
  • Jour 3 : IL N'Y A RIEN EN JOUR 3 !
  • Jour 2 : hello
  • Jour 1 : coucou

Or, avec ce que j'ai appris, c'est-à-dire en utilisant un truc du genre :

    $reponse = $bdd->query('SELECT * FROM mabase WHERE auteur=\''.$auteur.'\' ORDER BY jour DESC');  

    $donnees = $reponse->fetch();  

    while ($donnees = $reponse->fetch())  
    { des trucs ici... }  

...ben j'arrive pas à faire en sorte que quand la boucle en arrive à un numéro de jour qui n'est pas dans la base, elle affiche qch.

J'ai essayé de faire autrement et mettre ma requête SQL dans une boucle "for i compris entre 1 et Nmax", un truc du genre :

    $i=1;  

    while ($i<=$jourmax)  
    {  
        // et là-dedans je mets une requête SQL mais avec la contrainte jour=$i  
        // puis je mets le while/fetch (?...) qui affiche la réponse sensée être unique du coup  
        echo "Y'a rien ce jour-ci"; // mais je sais pas comment mettre un "else" associé à un while...  
        $i++;  
    }  

mais ça ne marche pas...

Bref, vous l'avez compris, je suis vraiment débutant... Comment faire ce que je veux ?

Je vous remercie mille fois pour votre aide !

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 21/01/2016 23:58  -  Haut de page  - 

Suggestion : fais un petit tour dans la documentation MySQL sur la clause GROUP BY, à quoi elle sert et comment la mettre en œuvre.

Si tu bloques sur un point, reviens avec des détails sur le point en question et je tâcherai de trouver une formulation pour te l'expliquer autrement.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |