Sql count [Résolu]

Signaler
Messages postés
432
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
9 octobre 2020
-
Messages postés
432
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
9 octobre 2020
-
Bonjour,
je viens vers vous car j'ai un soucis qui me provoques quelques prises de tête..
Je suis en train de faire une page dans laquelle je dois afficher des statistiques.
j'ai mes requêtes sql qui fonctionne sur php my admin sauf celle-ci
SELECT COUNT(*) FROM evenements WHERE date_end = CAST( NOW() AS DATE)
(sachant que dans phpmyadmin stocke les données au format datetime)

pour les autres requêtes sql, PhpMyAdmin me retourne le nombre de lignes concernés.

j'ai tenté de faire les requêtes en passant par du query ou des requêtes préparé mais je n'arrive pas a obtenir un affichage de la requête.

Voici les lignes

    $result[]=$bdd->query("SELECT COUNT(*) FROM evenements WHERE date_end = CAST( NOW() AS DATE)");

    $result[] = $bdd->prepare("SELECT COUNT(*) FROM evenements WHERE date_end IS NULL");
    $result[1]->execute();
    $result[1] = $result[1]->fetchAll();

    $result[]=$bdd->query("SELECT COUNT(*) FROM evenements WHERE technicien IS NULL");

Je ne comprend pas du tout pourquoi je n'arrive pas a arriver a mes fin..
Surtout que je n'ai aucune erreur qui s'affiche. :/

Je vous remercie d'avance pour toute l'aide que vous m'apporterais :D

3 réponses

Messages postés
432
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
9 octobre 2020
5
pour le problème d'affichages des informations j'ai trouvé le problème..
Je ne m'étais pas connecté a la bonne base de données :/
Messages postés
29736
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839
Bonjour,

Donc ton souci est résolu ? Si tel est le cas, merci de fermer la discussion.

Ensuite, pour éviter ce genre de mésaventures (ou d'autres...) commence par lire et appliquer le contenu de ce lien :
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Et puis éventuellement celui la, ça ne te fera pas de mal :-)
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.
Messages postés
29736
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839 >
Messages postés
432
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
9 octobre 2020

Je déplace donc ta question dans le forum MYSQL vu que ça concerne la requête et non un souci de code php.

A la place essaye CURDATE
SELECT date_end
              ,COUNT(*) AS NB
FROM evenements 
WHERE date_end = CURDATE()


Ou sinon avec un DATE_FORMAT
SELECT date_end
              , COUNT(*)  as NB
FROM evenements 
WHERE date_end = DATE_FORMAT( NOW(),'%Y-%m-%d')
Messages postés
29736
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839 >
Messages postés
29736
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020

Et question bête.. tu as bien des données à la date du jour ?

Tu pourrais nous fournir un show create de ta table et éventuellement quelques lignes de données ?
Messages postés
432
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
9 octobre 2020
5 >
Messages postés
29736
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020

Bonjour,
J'ai bien effectué les scripts sql sur phpmyadmin cependant il ne me retourne que le date_end avec 00:00:00 en heure et minutes..
voici ce que me retourne la commande "show create table"
127.0.0.1/tickets/evenements/  http://localhost/phpmyadmin/tbl_sql.php?db=tickets&table=evenements
La requête SQL a été exécutée avec succès.

show create table evenements



evenements CREATE TABLE `evenements` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date_start` datetime NOT NULL,
`date_end` datetime DEFAULT NULL,
`technicien` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4

Messages postés
29736
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839 >
Messages postés
432
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
9 octobre 2020

date_end` datetime ... Pas date...
Donc utilise des date_format
Messages postés
29736
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020
2 839 >
Messages postés
29736
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 octobre 2020

Donc soit tu utilises du DATE_FORMAT sur ta colonne
SELECT DATE_FORMAT( date_end,'%Y-%m-%d')
              , COUNT(*)  as NB
FROM evenements 
WHERE DATE_FORMAT( date_end,'%Y-%m-%d') =  CURDATE()


Soit tu modifies le type de colonne en DATE au lieu de DATETIME
Messages postés
432
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
9 octobre 2020
5
Merci !
j'ai modifié la requête sql.
Cela fonctionne parfaitement.


Bonne soirée. :)