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 :

[Réglé]Dépublier un article après son temps de vie


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut [Réglé]Dépublier un article après son temps de vie
    Bonjour à tous,

    À force de sillonner le site et le forum j'ai réussi a commencé a coder correctement, mais aujourd'hui pour ce premier post, je viens vous soumettre mes deux soucis.

    Le but pour moi est de monter une page sur laquelle apparaitra une liste d'évènements (concert, théatre etc…spectacles). Pour ce faire, j'ai créé une page admin et une publique.

    Mon souci se situe au niveau de la page publique, en effet, je cherche à faire en sorte que lorsque l'évènement arrive a son dernier jour, il ne soit plus publié.
    Par exemple :
    Aujourd'hui je publie une annonce d'une pièce de théâtre qui aura lieu le 10 aout 2010, lorsque l'on arrive effectivement au 10 aout, je souhaite que cette new ne soit plus lisible.
    Et je n'y arrive pas.

    Voici une parti du code PHP de ma page publique, j'ai créé une bdd "news" avec trois colonnes, ID, contenu pour le texte et date_eve réglé sur date.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sql = "SELECT * FROM news ORDER BY date_eve DESC";
    		$req = mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    		$semaine = array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");
    		$mois = array(1=>"janvier","février","mars","avril", "mai","juin","juillet","août","septembre","octobre","novembre","decembre");
     
    		while($data = mysql_fetch_assoc($req)){
    			echo "<h1 class=\"rose\">".date("j n Y",strtotime($data ["date_eve"]))."</h1>";
    			echo "<p>{$data ["contenu"]}</p>";
    			echo "<hr class=\"clearHide\"/>";
    			echo "<br />";
    		}
    Merci à vous.

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Pourquoi ne pas rajouter cette condition directement dans la requête, c'est plus simple normalement.

    Exemple :
    Pour un champ de type date
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT les_news FROM news WHERE date_eve < CURDATE()
    Pour un champ de type datetime
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT les_news FROM news WHERE date_eve < CURRENT_TIMESTAMP()
    Si les évènements ne dépendent pas de l'heure, mais juste de la date du jour, un champ de type date serait plus approprié.

    On peu même créer des évènements à l'avance, suffit de rajouter un champ (type date) pour ce faire (genre debut_eve).
    Ensuite, faire une requête du genre :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT les_news FROM news WHERE debut_eve >= CURDATE()
    AND date_eve < CURDATE()

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Salut

    Exemple :
    Pour un champ de type date
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT les_news FROM news WHERE date_eve < CURDATE()
    [/code]
    Merci beaucoup, j'ai essayé cette méthode qui fonctionne bien, et c'est un champ date effectivement. Juste une chose, est t'il encore possible de jouer avec le DESC ou ASC a ce stade ?

    Merci de votre aide

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par Fanto
    est t'il encore possible de jouer avec le DESC ou ASC a ce stade ?
    Oui, bien sûr.

    Je l'avais pas mis ... par flemmardise

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT les_news
    FROM news
    WHERE date_eve < CURDATE()
    ORDER BY date_eve DESC

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut
    A vraiment c'est terrible, merci

    A présent, je vais aller voir pour franciser mes dates, j'ai déja monté mes variables ().

    Merci

Discussions similaires

  1. [PPT-2010] blocage son et lecture automatique après un temps variable
    Par gardamon dans le forum Powerpoint
    Réponses: 3
    Dernier message: 22/10/2011, 01h12
  2. Developper pendant son temps libre et argent?
    Par Geoffray71 dans le forum Structure
    Réponses: 25
    Dernier message: 11/04/2007, 09h41
  3. Stopper un process après un temps donné
    Par Danae dans le forum Administration système
    Réponses: 12
    Dernier message: 23/12/2005, 14h07
  4. fermeture d'une application après un temp d'inactivité?
    Par sitdown dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 24/08/2005, 15h44

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