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 :

Afficher x lignes du table à condition qu'un champ date soit superieur à aujourd'hui [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 74
    Points
    74
    Par défaut Afficher x lignes du table à condition qu'un champ date soit superieur à aujourd'hui
    Bonjour,

    Voila ma question :

    Sur une page de mon site, je voudrais afficher le nombre de manifestations qui sont prévues à compter de la date d'aujourd'hui (pour exclure les anciens enregistrements.

    Voici mon code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    include ('langue.php');
    include ('acces.php');
    $db = mysql_connect($hôte, $utilisateur, $mPasse) or die($message);
    mysql_select_db($data,$db)  or die($message);
    $rq = "SELECT datefin FROM `manifestation`" ;
    $res = mysql_query($rq)  or die($message);
    $cejour = "CURDATE()" ;
    $nbResults = mysql_num_rows($res>$cejour);
    echo $nbResults;
    mysql_close();
    ?>
    Pouvez-vous me dire ce qui ne vas pas SVP.

    Quand je met le code comme ca à la fin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    $nbResults = mysql_num_rows($res>$cejour);
    echo $nbResults;
    mysql_close();
    ?>
    il me met toutes le total de toutes les lignes ou datefin est présente.
    Moi je veux qu'il m'affiche le nombre de lignes ou datefin est superieur ou egal à aujourd'hui.

    Merci pour votre réponse.
    Hervé

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nbResults = mysql_num_rows($res>$cejour);


    Il faut faire le test direct dans la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $rq = "SELECT datefin FROM manifestation WHERE date >= CURRENT_DATE()" ;
    ou quelque chose dans le genre.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Membre actif
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Points : 235
    Points
    235
    Par défaut
    Ton code est faux à première vue, il faudrait que tu fasses de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $result = mysql_query("SELECT datefin FROM manifestation WHERE date >= CURRENT_DATE()");
    $num_rows = mysql_num_rows($result);
    Ton erreur est dû à un mauvais emploi de mysql_num_rows.
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 74
    Points
    74
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    include ('langue.php');
    include ('acces.php');
    $db = mysql_connect($hôte, $utilisateur, $mPasse) or die($message);
    mysql_select_db($data,$db)  or die($message);
    $result = mysql_query("SELECT datefin FROM manifestation WHERE date >= CURRENT_DATE()");
    $num_rows = mysql_num_rows($result);
    echo $num_rows;
    mysql_close();
    ?>
    Ca me marque : Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/...
    Hervé

  5. #5
    Membre actif
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Points : 235
    Points
    235
    Par défaut
    Après ça peut venir de "date >= CURRENT_DATE()", car pour cela il faut que date soit un champ de type DATE ou DATETIME dans ta base de données.

    Donc vérifies le type de ce champ et corrige les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $result = mysql_query("SELECT datefin FROM manifestation WHERE date >= CURRENT_DATE()");
    $num_rows = mysql_num_rows($result);
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result = mysql_query("SELECT datefin FROM manifestation WHERE date >= CURRENT_DATE()") or die ("Erreur de requête SQL : " . mysql_error());
    if($result != false) $num_rows = mysql_num_rows($result);
    else echo "Aucun résultat";
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 88
    Points : 74
    Points
    74
    Par défaut
    Merci pour ta reponse, tu m'as bien aidé. J'ai trouvé ce qui proquait l'erreur, j'ai remplacé WHERE date par WHERE datefin.

    Merci pour l'aide
    Hervé

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

Discussions similaires

  1. [Python 2.X] Ajouter une ligne à une table et remplir ses champs
    Par Sphynx200 dans le forum Général Python
    Réponses: 0
    Dernier message: 09/04/2015, 16h01
  2. Condition avec un champ DATE
    Par tassia dans le forum Débutez
    Réponses: 3
    Dernier message: 02/04/2013, 16h43
  3. Réponses: 6
    Dernier message: 25/07/2011, 08h26
  4. comment afficher les données par mois à partir d'un champs date ?
    Par M.a.n.u. dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/05/2008, 09h36
  5. Afficher une ligne null ou vide dans un champ
    Par axamen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 12/03/2008, 18h30

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