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 :

Problème avec DATE SUB et INTERVAL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut Problème avec DATE SUB et INTERVAL
    Bonjour,

    J'ai un problème avec la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $affiche="SELECT ip,date FROM ipBannir WHERE ip='".$ip."' AND DATE_SUB('".$date."', INTERVAL 1 DAY) ";
    Le but de son existence dans mon code est d'aller chercher toutes les IP qui correspondent à $_SERVER["REMOTE_ADDR"] et qui sont stockées depuis moins de 24H00.

    Après je teste en faisant cela :
    if ($R ==0 ) {instruction;}
    ou alors
    if ($R <1 ) {instruction;}

    Mais le problème c'est que l'on dirait qu'elle va chercher tout simplement si il existe une IP dans la base, peu importe laquelle, pourvu qu'elle ait moins de 24H00.
    Donc elle n'exécute pas l'instruction.

    Pourriez-vous expliquer à cette requête que son existence tient à son bon fonctionnement et dans la mesure du possible lui expliquer comme faire pour survivre ?
    C'est pas parce que j'ai tort que vous avez raison.

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Montres nous un peu plus de code,je vois pas bien à quoi correspond $R ici vu que tu n'as pas l'agregats COUNT.

    Et puis montre nous aussi ce que vaut var_dump($affiche);

  3. #3
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut,
    Considérant
    que la syntaxe de DATE_SUB est connue de l'utilisateur d'une part,
    que la date sur laquelle porte le test est le champs date de la table

    concluons qu'il est possible de recycler le requête dont au sujet de laquelle nous parlons en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $affiche="SELECT ip,date FROM ipBannir WHERE ip='".$ip."' AND date>DATE_SUB('".$date."', INTERVAL 1 DAY) ";
    Quand à savoir si celle-ci donnera le résultat espéré nous proposons un petit test
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    C'est à dire que le code est très long, je ne vois pas trop quoi te montrer de plus.

    $R à pour but de renvoyer le nombre de lignes trouvées.

    Si tout ce passe bien on en trouve aucune, donc on exécute la suite du code.

    Si l'IP est déjà stockée, ça bloque (donc si $R n'est pas égal à 0).

    Je viens d'essayer cette requête aussi, mais c'est pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT ip FROM ipBannir WHERE Date + INTERVAL 1 DAY <=  NOW() AND ip='".$ip."'
    C'est pas parce que j'ai tort que vous avez raison.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Donc, je viens de tester avec un echo :

    J'ai deux enregistrement dans la table qui devrait correspondre, mais $R vaut 0.

    Donc la requête n'a rien trouvé, pourtant dans ce cas elle devrait.

    **edit** bon j'ai passé les dates avec time() pour être sur, maintenant ça fonctionne.
    Par contre c'est la logique de mon script qui est mauvaise.
    C'est pas parce que j'ai tort que vous avez raison.

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

Discussions similaires

  1. problème avec Date
    Par ulysse031 dans le forum Collection et Stream
    Réponses: 19
    Dernier message: 24/04/2007, 12h22
  2. [Dates] problème avec date et mktime
    Par gloubi dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2007, 17h59
  3. [Dates] Problème avec date (heure qui varie)
    Par Death83 dans le forum Langage
    Réponses: 10
    Dernier message: 05/08/2006, 02h19
  4. Problème avec date dans requête
    Par alain94 dans le forum Access
    Réponses: 2
    Dernier message: 22/05/2006, 07h49
  5. Problème avec "Date()" en mode runtime
    Par bwalbourg dans le forum Runtime
    Réponses: 1
    Dernier message: 25/01/2006, 10h51

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