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 :

comparaison de date mysql [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Par défaut comparaison de date mysql
    Bonjour a tous,
    je suis nouveau dans ce forum ainsi qu'en programmation php mysql. j'ai créer un script qui, toutes les heures efface tout les éléments dont la date d'expiration est dépassé. Le script fonctionne car si je change la requete, elle s'effectue correctement mais ma requête est apparemment incorect. Voici de quoi elle à l'air :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $queryVideur = "DELETE FROM user_temp WHERE tmp_datedel >= NOW()";
    $resultVider = mysql_query($queryVideur) or die (mysql_error());
    lorsque je change la requête et que je met delete from user_temp, tout s"efface donc le script fonctionne.
    Le champ tmp_datedel est de type DATETIME et l'heure de suppression est défini à l'heure de création + 24 heures...lorsque je vais voir le résultat, l'heure de supression est correcte (+- 15 min avant le temps actuelle ou j'execute le script).

    Pouvez vous m'indiquer quel pourrait être l'erreur ?
    merci d'avance pour vos réponse.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    c'est plutot <= que tu dois utiliser si la date de creation+24h est inférieur ou égale a la date actuelle on suprime

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Par défaut
    oups c juste lol en fait j'avais mis ça en test car je n'avais pas envie d'attendre 24 heures mais la requête ne fait quand même rien :s je vien de modifier la date dans ma table et j'ai corrigé l'erreur mais encore ici, rien ne se passe.
    Pourtant, quand je vérifie dans les logs d'erreur de php, rien n'indique qu'une erreur c'est produite.

    voici la date exacte :

    tmp_datedel : 2008-02-28 00:00:00

    et le code modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $queryVider = "DELETE FROM user_temp WHERE tmp_datedel <= NOW()";
    $resultVider = mysql_query($queryVider) or die (mysql_error());
    et lorsque je change la requete en "DELETE FROM user_temp" et que je lance le script manuelement, il efface bien toutes les lignes de la table.

    Merci encore de votre aide.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Par défaut
    un petit up lol je suis dessus depuis tanto et je ne trouve pas

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DELETE FROM a WHERE tmp_datedel <= NOW( )

    testé chez moi cela marche

  6. #6
    Membre éprouvé Avatar de bartrik
    Inscrit en
    Novembre 2003
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 104
    Par défaut
    Citation Envoyé par boo64 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DELETE FROM a WHERE tmp_datedel <= NOW( )

    testé chez moi cela marche
    Chez moi aussi,
    Un petit pour voir ?

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Chez moi aussi,
    Un petit
    Code :

    echo $queryVider;

    pour voir ?
    je ne pense que cela eprmette de voir quelque chose il n'y a pas de variable la requete est deja formé

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Par défaut
    re-bonjour et merci pour tes réponses

    En fait j'ai des nouveaux indices sur le problème :
    lorsque j'exécute la commande directement dans phpmyadmin, cela efface bien les champs qu'il faut. Seulement, lorsque je la lance a partir du script, cela ne fonctionne plus. Pourtant, le script fonctionne avec la bête requête :
    <code>DELETE FROM user_temp</code>
    et pas avec :
    <code>DELETE FROM user_temp WHERE tmp_datedel <= NOW()</code>
    donc, je supose que la fonction NOW() ou SYSDATE (j'ai essayer aussi, va pas!) pose problème en php... me trompe-je ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Par défaut
    J'anticipe vos réponse lol et le script est le suivent (sous windows)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    schtasks /create /tn ViderUserTemp /tr C:\wamp\www\viderUserTemp.php /SC HOURLY
    et quand je le lance avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    schtasks /run /tn viderUserTemp
    cela lance apparement le script. La connexion à la base de donnée se fait avec un fichier include qui me sert pour tout el reste de mon code et les droit sont all privilège (oui, je sait, c pas secure mais je modifierais à la fin )...voila, vous savez tout lol

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

Discussions similaires

  1. Requête comparaison de dates MySQL
    Par fra7878 dans le forum Requêtes
    Réponses: 7
    Dernier message: 03/06/2011, 12h40
  2. Comparaison de dates saisies avec celles de la base mysql.
    Par bernardgiraud dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 10/05/2010, 21h32
  3. comparaison date Mysql et date paramètre java
    Par kaskai dans le forum Requêtes
    Réponses: 10
    Dernier message: 18/09/2008, 13h01
  4. [MySQL] Comparaison de date au format texte dans requete mysql
    Par doudoustephane dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 22/04/2008, 16h27
  5. Comparaison de dates dans Mysql
    Par inch dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/05/2007, 12h08

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