IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problême avec un COUNT sur un template


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut Problême avec un COUNT sur un template
    Bonjour,

    Sur une table qui récupère des stats, je cherche à faire un count pour à la fin de chaque colonne mettre le total de chaque valeurs (buts, passes, etc...)

    j'utilise un système de template, mais je n'arrive pas à faire cette requête qui m'affiche une erreure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $sql->DatabaseConnexion();
    $table = _TCARR_;
    $aff_stats = $sql->query("SELECT COUNT * FROM ".$table." ".$end_query ); 
    $sql->DatabaseClose();
     
    while($results = mysql_fetch_array($aff_stats,MYSQL_ASSOC)) {
    	$tpl->assign_vars(array(
    					'T_MJ' => $results['t_mj'],
    					'T_BUTS' => $results['t_buts'],
    					'T_PASSES' => $results['t_passes'],
    					'T_CJ' => $results['t_cj'],
    					'T_CR' => $results['t_cr'],
    					));
    }
    Est-ce qu'on pourrait m'aider?

  2. #2
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    C'est SELECT COUNT(*) . Il ne faut pas oublier les paranthèse autour de l'*
    Such is the situation in our Fallen Galaxy

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Asmodean
    C'est SELECT COUNT(*) . Il ne faut pas oublier les paranthèse autour de l'*
    Après modif, j'ai toujours la même erreur:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
    Qui correspond à cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($results = mysql_fetch_array($aff_stats,MYSQL_ASSOC)) {

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je ne connais pas grand chose aux template, par contre je trouve ca surprenant que tu mélanges un mysql_fetch_array() avec le code du template qui semble gérer l'accès à la base d'une manière différente.

    Ensuite tu as fermé ta connexion avant de faire le fetch() je pense aussi que ca pose probleme, peut etre qu'en mettant le close apres ca ira mieux?

  5. #5
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Alors quand tu as cette erreur pense à mettre le or die(mysql_error()) derrière le mysql_query.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $aff_stats = $sql->query("SELECT COUNT * FROM ".$table." ".$end_query ) or die(mysql_error());
    Such is the situation in our Fallen Galaxy

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Après rajout, j'ai ce message:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*)

  7. #7
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    tu peux remetre le code maintenant que tu as rajouté les () ?
    Such is the situation in our Fallen Galaxy

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $sql->DatabaseConnexion();
    $table = _TCARR_;
    $aff_stats = $sql->query("SELECT COUNT (*) FROM ".$table." ".$end_query ) or die(mysql_error()); 
    $sql->DatabaseClose();
     
    while($results = mysql_fetch_array($aff_stats,MYSQL_ASSOC)) {
    	$tpl->assign_vars(array(
    					'T_MJ' => $results['t_mj'],
    					'T_BUTS' => $results['t_buts'],
    					'T_PASSES' => $results['t_passes'],
    					'T_CJ' => $results['t_cj'],
    					'T_CR' => $results['t_cr'],
    					));
    }

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    Je ne vois pas ce que pourrait être cette erreure de syntaxe...

    Sinon, pour faire des additions de chiffres, la requête avec SUM ne serait elle pas plus efficace?

  10. #10
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    peut etre l'espace entre COUNT et (*) ?
    sinon pour l'addition SUM est plus efficace, COUNT sert a compter le nombre de lignes résultant de la requete.

  11. #11
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Moi non plus à vrai dire...

    Pour SUM, ce n'est pas un question d'efficacité. Ca depenbd de ce que tu cherche à faire... COUNT te sert à compter le nombre de ligne retourné par une requête, alors que SUM additionne les valeurs d'un champ de toutes les requêtes.
    Such is the situation in our Fallen Galaxy

Discussions similaires

  1. Problème avec les indexes sur une base de données.
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/02/2006, 09h24
  2. Problème avec ma connexion sur hotmail
    Par shukin dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 30/01/2006, 14h09
  3. [SQL]Requete avec 2 count(*) sur la même table
    Par Sonny dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/11/2005, 16h41
  4. Problème avec port Série sur Win XP
    Par alexorel dans le forum MFC
    Réponses: 9
    Dernier message: 27/10/2005, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo