Problème, affichage des utilisateurs inscrits aujourd'hui

Ce topic a été résolu
Swaap

Swaap Le 5 mai 2016 à 12:28 (Édité le 25 janvier 2019 à 17:51)

Bonjour / Bonsoir,
Je suis bloquer sur un bout de php, je vous détails cela si vous pouvez me donner un petit coup de pouce 😀

Je souhaiterai afficher afficher le nombre des utilisateurs inscrits aujourd'hui exemple il y a en tout 30 inscrits sur mon site eux sont afficher dans la catégorie utilisateurs inscrits mais je souhaiterai faire une catégorie utilisateurs inscrits aujourd'hui et afficher le nombre d'utilisateurs qui se sont inscrits aujourd'hui.

Ma table SQL se nomme utilisateurs et elle contient les colonnes ID, pseudonyme, email, motdepasse, skype, date.

Merci d'avance pour vos réponses
dqfjsqhgfdqhvsq

dqfjsqhgfdqhvsq Le 5 mai 2016 à 13:29

Il y a des petits codes php que tu peux chopper sur le net vachement sympa. 😀 Sinon je ne sais pas faire :/
PrimFX

PrimFX Le 5 mai 2016 à 13:51

Salut !

Pour ça, il faut simplement que tu recherches les membres de ta base de donnée en sélectionnant uniquement ceux dont la date correspond à celle d'aujourd'hui. Un code comme celui-ci devrait faire l'affaire :
<?php
$inscrits_ajd = $bdd->prepare('SELECT id FROM membres WHERE dateinscription = ?');
$inscrits_ajd->execute(array(date("Y-m-d")));
$inscrits_ajd->fetch();
$inscrits_ajd = $inscrits_ajd->rowCount();
?>
La variable $inscrits_ajd contient le nombre d'utilisateurs qui se sont inscrits à ton site aujourd'hui 😉

Tu noteras que j'ai remplacé ton champ "date" par "dateinscription" dans la requête, je te conseil de faire de même dans ta base de donnée et dans le code d'ajout de membre (en gros modifier "date" par "dateinscription" partout), car "date" tout seul est un sélecteur réservé par SQL, en gros, ça veut dire que le fait de l'utiliser comme nom de champ peut provoquer un certain nombre de bugs... 😋
Swaap

Swaap Le 5 mai 2016 à 22:45

Bonsoir PrimFX,
Tout d'abord merci pour ta réponse, j'ai tester ton bout de code mais la réponse est = 0 je te poste ci-dessous une image de ma base de données pour t'éclairer, le code que j'ai insérer est un copier/coller de celui que tu m'as proposé tout à l'heure.
Voici ma base de données 
BeKidding

BeKidding Le 6 mai 2016 à 14:54

Salut , je pense que le problème viens du fait que ta table DateInscription n'est pas en format DATE , 
après je n'ai pas testé mais je pencherais pour cette hypothèse 
PrimFX

PrimFX Le 6 mai 2016 à 17:58 (Édité le 7 mai 2016 à 11:43)

Salut ! Effectivement, comme le dit BeKidding, le problème vient du fait que tu n'utilises pas une véritable date mais plutôt un timestamp... Du coup, voici le code qui devrait fonctionner 😉
<?php
$inscrits_ajd = $bdd->prepare('SELECT id FROM membres WHERE dateinscription = ?');
$inscrits_ajd->execute(array(time()));
$inscrits_ajd->fetch();
$inscrits_ajd = $inscrits_ajd->rowCount();
?>
PaulLavieille

PaulLavieille Le 6 mai 2016 à 18:00

@PrimFX connecté :o Tu peux venir sur le chat ? 😋
Swaap

Swaap Le 7 mai 2016 à 06:56

@PrimFX j'ai utilisé le bout de code que tu m'as inscrit ci-dessus mais lorsque que j'enregistre mon fichier .php et que je retourne sur mon localhost j'ai une erreur qui apparaît ( HTTP ERROR 500 ).
PrimFX

PrimFX Le 7 mai 2016 à 11:43

Parce que j'ai oublié une petite parenthèse à la 3e ligne 😋 j'ai édité mon code au-dessus 😉
Swaap

Swaap Le 7 mai 2016 à 22:26

@PrimFX j'ai utiliser de nouveau ton code sans succès...
Peux-tu peut-être m'expliquer comment faire pour insérer dans ma base de donnée une date qui irais avec le premier code que tu m'as proposé? Je te parle de ce code ci-dessous
<?php 
$inscrits_ajd = $bdd->prepare('SELECT id FROM membres WHERE dateinscription = ?');
$inscrits_ajd->execute(array(date("Y-m-d")));
$inscrits_ajd->fetch();
$inscrits_ajd = $inscrits_ajd->rowCount();
?>
Peut-être que le résultat que je cherche fonctionnera mieux comme cela.
Ranarxhag

Ranarxhag Le 8 mai 2016 à 00:39

C'est tout con. Dans ta base de donnée, il faut que ta colonne dateinscription soit de type datetime ou date (comme tu veux).

Et lors de l'inscription, pour insérer la date dans ta BDD, tu peux utiliser date("Y-m-d") ou la fonction SQL NOW() 😉
PrimFX

PrimFX Le 8 mai 2016 à 01:25

Effectivement, j'avais zappé ce détail : vu que le timestamp que tu utilises renvoie un temps en secondes, le deuxième exemple de code que je t'ai envoyé te retournera uniquement les utilisateurs inscrits dans la seconde x)
Du coup je te recommanderai d'utiliser mon premier exemple en suivant les conseils de Ranarxhag en utilisant la fonction NOW() en SQL pour insérer la date d'inscription de tes membres 😉
Swaap

Swaap Le 8 mai 2016 à 01:40

Et bien je tiens à vous remercier @Ranarxhag & @PrimFX vous avez régler mon problème, je vous en remercie énormément 😀
PrimFX

PrimFX Le 8 mai 2016 à 02:12

Pas de quoi 😉
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte