Count en sql dans du php

Résolu/Fermé
butterfly1983 Messages postés 13 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 18 février 2009 - 17 févr. 2009 à 20:30
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 22 févr. 2009 à 02:10
Bonjour,

j'ai un petit soucis, j'aimerai faire un count dans ma requete sql mais ca ne fonctionne pas???!!!

$resultatcount=mysql_query("SELECT COUNT (DISTINCT NUMTEI)
FROM ENTITE, SERVICE, POSSEDER, MODELE, TYPE
WHERE ENTITE.NUMENTITE=SERVICE.NUMENTITE
AND SERVICE.NUMSERVICE=POSSEDER.NUMSERVICE
AND POSSEDER.NUMMODELE=MODELE.NUMMODELE
AND MODELE.NUMTYPE = TYPE.NUMTYPE
AND ENTITE.NUMENTITE".$numentite."")

je vois pas pourquoi ???

aidez moi
A voir également:

3 réponses

Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
17 févr. 2009 à 21:54
Bonjour,

Pourrais-tu être plus explicite quand tu dis "ça ne fonctionne pas" ?

Je remarque déjà une erreur sur la dernière ligne où il manque l'opérateur d'égalité :

... AND ENTITE.NUMENTITE = ".$numentite);

Un conseil : utilise des simples apostrophes au lieu de guillemets pour améliorer les performances.
0
butterfly1983 Messages postés 13 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 18 février 2009
17 févr. 2009 à 22:36
j'essaye de faire une requête simple pour voir ou est l'erreur.

Avec cette requête ca ne fonctionne pas, ca me renvoi requête non exécutée2
je ne vois pas comment mettre le code pour que le count fonctionne.

Sachant qu'en définitive, cette requête a un critère qui est choisi dans uneliste déroulante. Mais bon pour l'instant, j'essaye de faire simple et après je verai pour rajouter mon critère.

$resultatcount1=mysql_query("SELECT COUNT (NUMTEI) AS NB
FROM MODELE
GROUP BY NUMTEI")
or die ("Requête non executée2.");
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
17 févr. 2009 à 23:18
La clause group by n'est utile que pour les champs sélectionnés en dehors d'une fonction d'agrégation lorsqu'une fonction d'agrégation est utilisée (count est une fonction d'agrégation). Dans ton cas, tu ne dois pas l'utiliser puisque tu ne récupères que ça.

A part ça il n'y a aucune raison pour que la requête ne fonctionne pas, elle est correcte. Dans le doute, tente un "count(*)" au lieu de préciser le nom du champ NUMTEI.
0
butterfly1983 Messages postés 13 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 18 février 2009
18 févr. 2009 à 19:58
j'ai essayé mais ca ne fonctionne toujours pas!!! snif!!
alors j'ai mis un peu plus de code pour essayer de voir si ce n'est pas ce que j'ai au dessus qui n'est pas compatible!

avant de rajouter cette requete de count, ca fonctionnait très bien donc jesais que le reste du code est bon,mais avec cette fonction peut etre qu'il faut que je change quelque chose!


if (ISSET($_POST['numentite']))
{
/* rajouter le nombre de pc, le nombre vérifié, la différence */
echo 'Liste du matériel pris en compte par '.$_POST['entite'];
echo '<br><br><table border="0">';
$numservice=$_POST['numentite'];
$resultatcount1=mysql_query("SELECT COUNT (*)
FROM MODELE")
or die ("Requête non executée2.");
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
22 févr. 2009 à 02:10
Salut :-) Ne pleure paaaaas.

Tu as bien essayé avec un exemple simple qui ne peut pas échouer, mais as-tu essayé avec une autre requête encore plus simple que ça ? Parce que si ça ne fonctionne avec aucune requête, ça veut peut-être dire que la connexion à la base de données n'a pas été établie juste avant puisque tu ne précises aucune connexion dans la fonction mysql_query. Tu as probablement modifié quelque chose de plus important plus haut dans ton code.

Si c'est vraiment une erreur de syntaxe (ou autre) retournée depuis le serveur MySQL, tu peux la connaître via la fonction suivante : mysql_error().

Donc fais plutôt "or die(mysql_error())" au lieu de or die("requête non exécutée 2")... le message d'erreurs sera plus explicite.
0