[RESOLU] Select avec variable

Eléphant du PHP | 250 Messages

14 juil. 2022, 16:03

Bonjour,
Je voudrais sélectionner des lignes dont une date est plus vieille que un an
$OneYearAgo = strtotime('-1 year');
$results = mysqli_query($db,"select * FROM `phpbb_users` where 'user_regdate'<".$OneYearAgo);
Le résultat contient toutes les lignes, même celles qui ont moins d'un an.
Où est l'erreur ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9435 Messages

18 juil. 2022, 12:43

Vérifie que le timestamp obtenu soit bien correct ( https://www.timestamp.fr )
Puis teste ta requête dans phpmyadmin pour voir ce qui pourrait ne pas fonctionner.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 250 Messages

18 juil. 2022, 14:14

$OneYearAgo = strtotime('-1 year');
echo $OneYearAgo;
1626606084
Résultat en date : 18/07/2021 13:01:24

en php my admin
select * FROM `phpbb_users` where (`user_type`=0 OR `user_type`=3) AND 'user_regdate'<1626606084;
sélectionne tous les enregistrements, même ceux dont 'user_regdate' > 1626606084 !
Si je supprime AND 'user_regdate'<1626606084 j'obtiens le même résultat

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9435 Messages

18 juil. 2022, 14:38

Peut-être à cause des guillemets sur le nom de ta colonne ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 250 Messages

18 juil. 2022, 15:03

Non mais tu m'as fait comprendre mon erreur : j'ai utilisé ' au lieu de `
Merci