Page 1 sur 1

Gestion de dates SQL

Posté : 28 janv. 2021, 21:48
par remilami
Bonjour je ne peux pas tester une partie de mon programme ou du moins je ne sais pas comment le faire vu que les date dans ma base de donnée sql s'implémente seule et attendre une année est trop long.
Voici mon code php, la variable $_POST['number'] recoit un int et $_POST['surete'] est simplement une checkbox;
Je souhaite que les utilisateurs qui n'ont pas été connectés depuis plus de $_POST['number'] années soient supprimés:
Pouvez-vous me confirmer ou non que ceci fonctionne (la requête SQL) ? merci a vous.
#######Supprimer utilisateur non connectés########
if (!empty($_POST['number'])) {
    if (!empty($_POST['surete'])) {
        $nombreJour = $_POST['number']*365;
        $sql4 = 'DELETE FROM membre WHERE DATEDIFF (CURDATE(),derniere_connexion) > '.$nombreJour.'';
        $req4 = mysqli_query($connexion, $sql4) or die('Erreur SQL !<br />' . $sql4 . '<br />' . mysqli_error($connexion));
        //header('location: gestionMembre.php');
    }
    else {
        $erreur = "La case de sureté n\'est pas cochée !";
        $_SESSION['erreur'] = $erreur;
        header('location: gestionMembre.php');
    }
}
Image

Image

Re: Gestion de dates SQL

Posté : 28 janv. 2021, 21:59
par or 1
il est toujours possible pour vérifier, dans phpmyadmin, d’exécuter :
select pseudo, derniere_connexion, DATEDIFF (CURDATE(),derniere_connexion) as nb FROM membre WHERE DATEDIFF (CURDATE(),derniere_connexion) > 10

Re: Gestion de dates SQL

Posté : 29 janv. 2021, 19:10
par remilami
il est toujours possible pour vérifier, dans phpmyadmin, d’exécuter :
select pseudo, derniere_connexion, DATEDIFF (CURDATE(),derniere_connexion) as nb FROM membre WHERE DATEDIFF (CURDATE(),derniere_connexion) > 10
Ah oui le select pas bête mais bon je n'ai pas encore d'utilisateurs qui ne sont pas connectés depuis au moins 1ans donc difficile a tester je vais laisser comme ca vu que je n'en ai pas besoin de suite...

Re: Gestion de dates SQL

Posté : 12 févr. 2021, 17:02
par Ryle
Salutations !

Si tu veux juste tester si ton code fonctionne, tu peux aussi modifier cette ligne et mettre un coefficient différent :
$nombreJour = $_POST['number']*365;
Si au lieu de 365 tu mets la valeur 1 ou 10, tu peux tester et vérifier que ton script supprime bien les utilisateurs qui ne se sont pas connectés depuis 1, 2, 3, ... 10, 20 ou 30 jours...

Si ça fonctionne avec *1, ça fonctionnera aussi avec *365 ;)

(évite de tester sur ta base de production par contre ;))