J'ai un soucis avec une requête. La requête fonctionne bien dans phpmyAdmin
mais renvoie toujours 1 dans ma page web.
J'ai une base (boutiqueanimalissaintpriest) composée de deux colonnes :
Une colonne nommée "crit1" qui contient une note sur 10 et une autre nommée
"date" qui contient la date de l'enregistrement.
Je souhaite calculer et afficher le nombre d'enregistrements datant de moins
de 6 mois.
Voici le code complet qui est placé dans un tableau
---------------------------------------------------
<?php
// connexion à la base
$db = mysql_connect('mysql5-3', 'aaaaaa', 'bbbbbbb') or die('Erreur de
connexion '.mysql_error());
// sélection de la base
mysql_select_db('aaaaaa') or die('Erreur de selection '.mysql_error());
// Creation et envoi de la requete
$sql = "SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date >
SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)";
$query = mysql_query($sql) or die($sql . ' : ' . mysql_error());
$data = mysql_num_rows($query);
echo "($data avis)" ;
mysql_close(); // on ferme la connexion
?>
------------------------------------------
Le probléme c'est que la valeur affichée dans le tableau est toujours 1.
Pourtant dans phpmyadmin la requête :
---------------
$sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date >
SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)';
--------------------
me donne le bon nombre....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bobe
Auden nous a dit le 31.05.2007 20:30:
Le probléme c'est que la valeur affichée dans le tableau est toujours 1. Pourtant dans phpmyadmin la requête :
--------------- $sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)'; -------------------- me donne le bon nombre....
Quelqu'un voit d'où vient le problème ??
3 heures que je sèche dessus :-(
Ta requête retournera toujours une unique ligne car tu fais un select count(*) ..., d'où le 1 retourné par mysql_num_rows().
Fais plutôt $data = mysql_result($query, 0, 0);
-- Aurélien Maille
Auden nous a dit le 31.05.2007 20:30:
Le probléme c'est que la valeur affichée dans le tableau est toujours 1.
Pourtant dans phpmyadmin la requête :
---------------
$sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date >
SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)';
--------------------
me donne le bon nombre....
Quelqu'un voit d'où vient le problème ??
3 heures que je sèche dessus :-(
Ta requête retournera toujours une unique ligne car tu fais un select
count(*) ..., d'où le 1 retourné par mysql_num_rows().
Le probléme c'est que la valeur affichée dans le tableau est toujours 1. Pourtant dans phpmyadmin la requête :
--------------- $sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)'; -------------------- me donne le bon nombre....
Quelqu'un voit d'où vient le problème ??
3 heures que je sèche dessus :-(
Ta requête retournera toujours une unique ligne car tu fais un select count(*) ..., d'où le 1 retourné par mysql_num_rows().
Fais plutôt $data = mysql_result($query, 0, 0);
-- Aurélien Maille
Bruno Baguette
Bonjour,
J'ai un soucis avec une requête. La requête fonctionne bien dans phpmyAdmin mais renvoie toujours 1 dans ma page web.
Ce que vous affichez, ce n'est pas le résultat de votre requête, mais bien le nombre d'enregistrements retournés par votre requête. Ce qui dans le cas de votre requête sera toujours 1.
Pour afficher le résultat du COUNT(), vous devez remplacer cette ligne
$data = mysql_num_rows($query);
par celle-ci :
$data = mysql_fetch_assoc($query);
et profitez en pour mettre un alias après votre COUNT(), ce qui donnerait au final ceci :
### $sql = "SELECT count(*) AS nbre_avis FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)"; $query = mysql_query($sql) or die($sql . ' : ' . mysql_error()); $data = mysql_fetch_assoc($query); echo($data['nbre_avis']." avis"); ###
En espérant que ca aide :-)
-- Bruno Baguette -
Bonjour,
J'ai un soucis avec une requête. La requête fonctionne bien dans phpmyAdmin
mais renvoie toujours 1 dans ma page web.
Ce que vous affichez, ce n'est pas le résultat de votre requête, mais
bien le nombre d'enregistrements retournés par votre requête. Ce qui
dans le cas de votre requête sera toujours 1.
Pour afficher le résultat du COUNT(), vous devez remplacer cette ligne
$data = mysql_num_rows($query);
par celle-ci :
$data = mysql_fetch_assoc($query);
et profitez en pour mettre un alias après votre COUNT(),
ce qui donnerait au final ceci :
###
$sql = "SELECT count(*) AS nbre_avis FROM boutiqueanimalissaintpriest
WHERE date >
SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)";
$query = mysql_query($sql) or die($sql . ' : ' . mysql_error());
$data = mysql_fetch_assoc($query);
echo($data['nbre_avis']." avis");
###
Ce que vous affichez, ce n'est pas le résultat de votre requête, mais bien le nombre d'enregistrements retournés par votre requête. Ce qui dans le cas de votre requête sera toujours 1.
Pour afficher le résultat du COUNT(), vous devez remplacer cette ligne
$data = mysql_num_rows($query);
par celle-ci :
$data = mysql_fetch_assoc($query);
et profitez en pour mettre un alias après votre COUNT(), ce qui donnerait au final ceci :
### $sql = "SELECT count(*) AS nbre_avis FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)"; $query = mysql_query($sql) or die($sql . ' : ' . mysql_error()); $data = mysql_fetch_assoc($query); echo($data['nbre_avis']." avis"); ###
En espérant que ca aide :-)
-- Bruno Baguette -
slambert
$data = mysql_num_rows($query);
Juste comme ca, pour savoir, elle retourne combien de lignes, ta requete ?
Stef
$data = mysql_num_rows($query);
Juste comme ca, pour savoir, elle retourne combien de lignes, ta requete ?
Juste comme ca, pour savoir, elle retourne combien de lignes, ta requete ?
Stef
Auden
"Bobe" a écrit dans le message de news: 465f1730$0$25936$
Auden nous a dit le 31.05.2007 20:30:
Le probléme c'est que la valeur affichée dans le tableau est toujours 1. Pourtant dans phpmyadmin la requête :
--------------- $sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)'; -------------------- me donne le bon nombre....
Quelqu'un voit d'où vient le problème ??
3 heures que je sèche dessus :-(
Ta requête retournera toujours une unique ligne car tu fais un select count(*) ..., d'où le 1 retourné par mysql_num_rows().
Fais plutôt $data = mysql_result($query, 0, 0);
-- Aurélien Maille
Merci à tous, vus avez résolu mon problème !
"Bobe" <bobe@antispam.invalid> a écrit dans le message de news:
465f1730$0$25936$ba4acef3@news.orange.fr...
Auden nous a dit le 31.05.2007 20:30:
Le probléme c'est que la valeur affichée dans le tableau est toujours 1.
Pourtant dans phpmyadmin la requête :
---------------
$sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date >
SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)';
--------------------
me donne le bon nombre....
Quelqu'un voit d'où vient le problème ??
3 heures que je sèche dessus :-(
Ta requête retournera toujours une unique ligne car tu fais un select
count(*) ..., d'où le 1 retourné par mysql_num_rows().
"Bobe" a écrit dans le message de news: 465f1730$0$25936$
Auden nous a dit le 31.05.2007 20:30:
Le probléme c'est que la valeur affichée dans le tableau est toujours 1. Pourtant dans phpmyadmin la requête :
--------------- $sql = 'SELECT count(*) FROM boutiqueanimalissaintpriest WHERE date > SUBDATE(DATE(NOW()), INTERVAL 6 MONTH)'; -------------------- me donne le bon nombre....
Quelqu'un voit d'où vient le problème ??
3 heures que je sèche dessus :-(
Ta requête retournera toujours une unique ligne car tu fais un select count(*) ..., d'où le 1 retourné par mysql_num_rows().