[MySql] Problème de "count(*)" lors de

Fermé
Sébastien724 - 31 déc. 2008 à 15:02
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 - 31 déc. 2008 à 18:17
Bonjour,

$mysql = "SELECT count(*) FROM cf_grattage WHERE id_membre = '".$_SESSION['idmembre']."' AND date = '".$dt."'";
$myreq = mysql_query($mysql);

echo mysql_num_rows($myreq);


Voilà mon problème c'est que je souhaite récupérer de ma table le nombre d'enregistrements du membre X pour la date Y.

Il me retourne toujours 1 et si je fais : $nb = mysql_num_rows($myreq); et ensuite je fais echo $nb[0]; cela ne m'affiche plus rien du tout.

Avez-vous une idée du problème ?

Merci par avance
A voir également:

3 réponses

Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 331
31 déc. 2008 à 15:20
Yep,

mysql_num_rows($myreq); demande à MySQL de renvoyer le nombre de "lignes" renvoyées par la requête $myreq.

Or la requête $myreq demande à MySQL de compter le nombre d'enregistrements du membre X pour la date Y. Celui-ci répond par exemple 1450. '1450' correspondant à une ligne, mysql_num_rows renvoie donc 1 même s'il y a 1450 enregistrements de X à la date Y, c'est normal.

Ce que tu veux faire c'est :
$mysql = "SELECT count(*) AS nb_denreg_de_X_a_la_date_Y FROM cf_grattage WHERE id_membre = '".$_SESSION['idmembre']."' AND date =  ".$dt."'";

$myreq = mysql_query($mysql);        //Exécuter la requête

$row=mysql_fetch_array($myrequ);        //Mettre le résultat de la requête dans un tableau

echo $row['nb_denreg_de_X_a_la_date_Y FROM cf_grattage'];        //Afficher la colonne du tableau qui nous intéresse
0
Sébastien724
31 déc. 2008 à 15:26
Euh merci mais j'ai pas tout compris ton code

Moi ce que je cherche à faire comme je l'ai dis c'est récupéré de ma table cf_grattage c'est le nombre de fois qu'apparait le membre X pour la date Y.

Genre c'est pour un ticket à gratter où j'offre 3 parties gratuite par jour et donc à chaque fois que le membre charge la page, ça enregistre dans la table cf_grattage

et au chargement de la page je veux vérifier si le membre à déjà chargé 3 fois le ticket, l'interdire de participer...
0
Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 331
31 déc. 2008 à 18:17
Oui, et bien ça va marcher comme ça.
Ou alors si tu veux tu peux faire ça, ça marche aussi et il y a même moins de trucs à modifier (remplacer le count(*) par *) et ça peut servir si tu as besoin des champs en question :
$mysql = "SELECT * FROM cf_grattage WHERE id_membre = '".$_SESSION['idmembre']."' AND date = '".$dt."'";

$myreq = mysql_query($mysql);        //Exécuter la requête $mysql='sélectionner tous les n-uplets où id_membre=X et date=Y'

echo mysql_num_rows($myreq);     //Afficher le nombre de n-uplets où id_membre=X et date=Y'
C'est quoi que t'as pas compris ? Le code en lui-même ? Les commentaires ? Ou le problème qu'il y a dans ton code-à-toi ?
0