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 :

count (?) AS nombre ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut count (?) AS nombre ?
    Bonsoir tout le monde !

    Je vous sollicite afin de résoudre un petit problème : j'ai actuellement deux bases (membre et offre)

    ...et mon application est la suivante : un membre s'inscrit avec un identifiant unique (login). Par la suite, il peut poster des offres via un espace membre et je souhaiterais comptabiliser le nombre d'offres par identifiant (cad comptabiliser les "login" identiques de ma base offre)

    voici la structures de mes 2 bases pour :

    >>membre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE TABLE membre (
    
    id int(11) NOT NULL auto_increment,
    login text NOT NULL,
    pass_md5 text NOT NULL,
    nom text NOT NULL,
    prenom text NOT NULL,
    adresse text NOT NULL,
    cp text NOT NULL,
    ville text NOT NULL,
    mail text NOT NULL,
    PRIMARY KEY (id)
    ) 
    
    TYPE=MyISAM;
    >>offre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE offre (
    
    id int(11) NOT NULL auto_increment,
    login text NOT NULL,
    intitule text NOT NULL,
    photoarticle text NOT NULL,
    spec text NOT NULL,
    mail text NOT NULL,
    date timestamp NOT NULL,
    PRIMARY KEY (id)
    ) 
    
    TYPE=MyISAM;
    et mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $search = mysql_query("SELECT membre.id, membre.login, membre.nom, membre.prenom, membre.adresse, membre.cp, membre.ville, membre.mail, membre.photoarticle, membre.genre, membre.date, offre.login, count( offre.login ) AS nombre FROM membre LEFT OUTER JOIN offre ON membre.login = offre.login WHERE membre.login = '$login' GROUP BY membre.id") or die ("ERROR:" . mysql_error());
     
    $num = mysql_num_rows($search);
     
    $nombre = $row['nombre'];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <? echo'<a href="offre.php?login='.$row[1].'">offres (<b>'.$row['nombre'].'</b>)</a>'; ?>
    concrètement rien ne s'affiche entre les parenthèseS ... offres (?)

    Merci de votre aide ++

  2. #2
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bonsoir,

    pourquoi n'afficherais tu pas ta variable $num dans les parenthèses??

    Bonne soirée ++

  3. #3
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Ma variable $num comptabilise le nombre de membre WHERE membre.login = '$login' donc théoriquement cette variable sera toujours égale à 1.

    Je souhaite comptabiliser le nombre d'offres par identifiant (login)

    Merci d'avance ++

  4. #4
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    J'ai essayé d'interchanger la place de mes bases dans le code mais même résultat ...

    Je vous post à nouveau le code non modifié puisqu'aucun résultat ne s'affiche ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $search = mysql_query("SELECT membre.id, membre.login, membre.nom, membre.prenom, membre.adresse, membre.cp, membre.ville, membre.mail, membre.photoarticle, membre.genre, membre.date, offre.login, count( offre.login ) AS nombre FROM membre LEFT OUTER JOIN offre ON membre.login = offre.login WHERE membre.login = '$login' GROUP BY membre.id") or die ("ERROR:" . mysql_error());
     
    $num = mysql_num_rows($search);
     
    $nombre = $row['nombre'];

  5. #5
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bonsoir,

    perso j'aurais peut être fais 2 requêtes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $search = mysql_query("SELECT id, login, nom, prenom, adresse, cp, ville, mail, photoarticle, genre, date FROM membre WHERE login = '$login' ") or die ("ERROR:" . mysql_error());
     
    $search2 = mysql_query("SELECT login FROM offre WHERE login = '$login' ") or die ("ERROR:" . mysql_error());
     
    $num = mysql_num_rows($search);
     
    $num2 = mysql_num_rows($search2);
    tu aura ton nombre avec $num2

    Je sais pas si j'ai pu t'éclairer, mais j'espère

    ++

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Tout d'abord, il serait plus logique de remplacer la colonne 'login' de la table 'offre' par l'id de la table membre.
    Ensuite, pourquoi une si longue requête pour n'utiliser que 2 colonnes ?

    Et pour ton code, fait un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
      $sql = 'SELECT membre.id, membre.login, membre.nom, membre.prenom, membre.adresse, membre.cp, 
                     membre.ville, membre.mail, membre.photoarticle, membre.genre, membre.date, 
                     offre.login, count( offre.login ) AS nombre 
              FROM membre 
              LEFT OUTER JOIN offre ON membre.login = offre.login 
              WHERE membre.login = \'' . $login . '\' 
              GROUP BY membre.id';
      $search = mysql_query($ql) 
        or die ("ERROR:" . mysql_error());
      $row = mysql_fetch_array($search);
     
      echo '<a href="offre.php?login=' . $row[1] . '">offres (<b>' . $row[12] . '</b>)</a>';
    ?>
    Toutes les fonctions mysql sont là :
    http://www.php.net/manual/fr/ref.mysql.php

  7. #7
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Désolé pour le retard ...

    Le code de Jeca fonctionne correctement et m'affiche le nombre d'offres ...



    Cependant jsui en train de revoir l'architecture de mon code par souci de cohérence...Merci pour tes post sharrascript

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2010, 16h51
  2. [MySQL] (count) le nombre de champ identique ?
    Par gastoncs dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/07/2010, 19h50
  3. Nombre de lignes sans faire count(*)
    Par SINDIZ dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/03/2008, 07h05
  4. Enum? Count Nombre d'occurence dans un enum
    Par BenoitM dans le forum Framework .NET
    Réponses: 3
    Dernier message: 28/11/2007, 13h45
  5. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

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