[RESOLU] Effacer en fonction d'une date

Eléphant du PHP | 194 Messages

02 nov. 2021, 13:00

Bonjour,
C'est ce que j'ai fait, un copier coller de la requête d'Arthur.
SELECT TIMEDIFF(CURTIME(), `maj`) FROM utilisateurs

Regardez la seconde image ou il y a le résultat de phpMyAdmin
Image


@+Filou

Mammouth du PHP | 2703 Messages

02 nov. 2021, 13:17

effectivement, le problème était ailleurs.

https://dev.mysql.com/doc/refman/8.0/en ... n_timediff
"but both must be of the same type"
donc now() ou lieu de curtime()

Eléphant du PHP | 194 Messages

02 nov. 2021, 13:46

cela me donne ceci
Image

@+ Filou

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 nov. 2021, 14:47

cela me donne ceci
Donc, ça marche.
A toi d'avancer maintenant ! :D
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 194 Messages

02 nov. 2021, 17:52

Merci pour votre aide je vais essayer d'avancer seul.
Avec votre aide je pense être sur la bonne voie.

SELECT TIMEDIFF(NOW(), `maj`) FROM utilisateurs WHERE `creation` = `maj` AND actif =0

lorsque que je remplace le select par delete cela ne fonctionne pas ....
cela me met l'erreur :
#1064 - Erreur de syntaxe près de '(NOW(), `maj`) FROM utilisateurs WHERE `creation` = `maj` AND actif =0' à la ligne 1
Alors que le select affiche bien les éléments que je souhaite.

de plus je sais pas comment integrer la notion de 3h

Je sais pas comment on fait pour enlever le commentaire qu'il y a eu auparavant mis dans la discussion.
C'est un administrateur peut l'enlever ça serait cool.

@+ Filou

Mammouth du PHP | 2703 Messages

02 nov. 2021, 18:05


Eléphant du PHP | 194 Messages

03 nov. 2021, 09:13

Bonjour à tous,

Encore merci pour votre aide j'avance petit à petit.
Cette requête fonctionne :
SELECT * FROM `utilisateurs` WHERE `actif` = 0 AND `maj` = `creation` AND (TIMEDIFF(NOW(), `maj`)) > "03:00:00"
Par contre des que je met DELETE à la place de SELECT
DELETE * FROM `utilisateurs` WHERE `actif` = 0 AND `maj` = `creation` AND (TIMEDIFF(NOW(), `maj`)) > "03:00:00"
J'obtiens le message d'erreur suivant :
MySQL a répondu : Documentation
#1064 - Erreur de syntaxe près de '* FROM `utilisateurs` WHERE `actif` = 0 AND `maj` = `creation` AND (TIMEDIFF(...' à la ligne 1)
un indice ou une piste ....

@+ Filou

Eléphant du PHP | 194 Messages

03 nov. 2021, 09:19

oups j'ai trouver :
DELETE FROM `utilisateurs` WHERE `actif` = 0 AND `maj` = `creation` AND (TIMEDIFF(NOW(), `maj`)) > "03:00:00"
Merci à tous pour votre aide.

@+ Filou