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

Langage PHP Discussion :

Affichage news plutôt particulière


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    AdminSys
    Inscrit en
    Juin 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : AdminSys

    Informations forums :
    Inscription : Juin 2007
    Messages : 139
    Points : 344
    Points
    344
    Par défaut Affichage news plutôt particulière
    Salut à toutes et à tous,

    Voilà comme vous devez l'entendre souvent ici, je débute dans le langage PHP.

    Je suis entrain de faire mon propre site dynamique :p

    Mon problême est la façon que j'ai choisit pour afficher les news du site voici un exemple :

    Aujourd'hui
    - news1
    - news2
    - news3
    - news4
    Hier
    - news5
    - news6
    Avant hier
    - news7
    - news8
    - news9
    - news10
    Donc en faite j'aimerai que si la date est egal à "date("Y/m/d")" , on affiche la date (une seul fois) puis les news de cette date, ensuite si la date vaut "date('Y-m-d', time() - 3600 * 24)" par exemple, on affiche la date (une seul fois) et les news en relation à cette date etc...

    Je sais pas du tout comment je peux faire ça avec des boucles :s suis-je pas assez logique ? Je sais pas, j'ai pas eu de problême pour le reste mais là :p

    Si quelqu'un pourrait m'éclairer

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose que tes news sont dans une bdd sql ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo 'aujourd'hui';
    $sql = 'SELECT news_txt FROM news WHERE news_date = curdate()'
    ...
    echo hier';
    $sql = 'SELECT news_txt FROM news WHERE news_date = curdate() - INTERVAL 1 DAY'
    ...
    ou meme tiens en une seule requete et tu stock les news par eloignement dans un tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = 'SELECT datediff(curdate() as ecart, news_date), news_txt FROM news';
    ...
    while ($row = mysql_fetch_array($result)) {
       $news[$row['ecart']][] = $row['news_txt'];
    }
    Si tu es perdu dans tout ca, dit nous en plus sur ton code, ta base etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    AdminSys
    Inscrit en
    Juin 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : AdminSys

    Informations forums :
    Inscription : Juin 2007
    Messages : 139
    Points : 344
    Points
    344
    Par défaut
    Merci pour ta réponse rapide

    Acutellement ma requête est comme ça :
    $news1 = 'SELECT * FROM youps3_news WHERE Actif="1" ORDER BY datereal DESC';
    $news2 = mysql_query ($news1);
    $news3 = mysql_fetch_array ($news2);
    La première idée est bien, mais le problême c'est que j'aimerai affiché un nombre limité de news (toutes dates confondus).

    Sinon j'ai pas trop compris comment marchait ta requête pour le 2eme cas.

    Un petit aperçu de mon projet
    http://91.121.53.135/index.ps3

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    // on prend les 10 premieres news en calculant l'ecart qu'elles ont avec la date actuelle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql = 'SELECT datediff( curdate( ) , datereal ) as ecart, newstxt FROM youps3_news WHERE Actif=1 ORDER BY datereal DESC LIMIT 10';
    $result = mysql_query($sql);
    while ($row= mysql_fetch_array($result)) {
      // on stocke les news regroupées par ecart avec la date du jour dans un tableau
     $news[$row['ecart']][] = $row['news_txt'];
    }
     
    foreach ($news as $ecart=>$news) {
      echo mktime(0, 0, 0, date("m")  , date("d")-$ecart, date("Y"));
        foreach ($news as $ value) {
           echo $value;
        }
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    AdminSys
    Inscrit en
    Juin 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : AdminSys

    Informations forums :
    Inscription : Juin 2007
    Messages : 139
    Points : 344
    Points
    344
    Par défaut
    Salut,

    J'ai essayé ta façon, mais j'ai pas réussi à l'appliquer avec mes variables :s

    cepandant quelqu'un m'a proposé cette façon :

    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
     
    $requete = "SELECT date, nom FROM news";
    $resultat_requete = mysql_query($requete);
     
    while($donnees = mysql_fetch_array($resultat_requete))
    {
        $news[$donnees['date']][] = $donnes['nom'];
    }
     
    foreach($news as $date=>$tab)
    {
       echo "date : $date<br>";
       foreach($tab as $val)
       {
          echo $val."<br>";
       }
    }
    Qui a l'air moins complexe en tout cas avec cette façon mon affichage fonctionne !

    Merci encore sabotage tu m'a permis de découvrir datediff et curdate()

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

Discussions similaires

  1. [MySQL] Affichage news en 3 colonnes
    Par Delvauxo dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/12/2011, 16h53
  2. [MySQL] Site web: affichage news et ses commentaires
    Par maxratus dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/08/2010, 10h20
  3. Affichage news Scroll horizontal
    Par G_angel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/07/2010, 22h59
  4. Réponses: 1
    Dernier message: 03/06/2009, 19h12

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