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

Langage SQL Discussion :

Résultat de tables SQL


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Résultat de tables SQL
    Bonjour à Tous,

    Je développe une appli en php.
    J'ai une table questionnaire qui a pour champs : id,nom, prenom, emailperso, nbparrains.
    et une table parrainage qui a pour champs: id,nom, prenom, emailperso, emailparrain.

    Ma table parrainage contient les noms,prénoms et email des parrainés ainsi que l'email du parrain.
    Ma table questionnaire contient les noms, prénoms et email des parrains et nbparrains (initialisé à 0) est le nombre de parrainage que chaque parrain a fait (dans la table parrainage via le champ emailparrain).

    Ma question est la suivante, comment faire pour calculer le nombre de parrainés de chaque parrain (nbparrains) et d'insérer le résultat dans la table questionnaire.

    D'avance merci.

    Carter

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Quelque chose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Questionnaire 
    SET NbParrains = (SELECT COUNT(*) FROM Parrainage WHERE Parrainage.emailParrain = Questionnaire.emailPerso)
    Les Parrains sans parainné auront NbParrains à NULL.

    Une colonne NbParrains qui contient les Parrainés : source de bugs fonctionnels !

    Attention à ce genre de colonne qui risque de ne pas être toujours à jour (sauf avec un Trigger)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    je fais le test en local, et rien ne se passe; j'ai aucune valeur qui change.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Comme j'ai plusieurs noms de parrains différent (emailparrain), je me demande du coup si ils sont tous pris en compte.

  5. #5
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    As-tu commité l'update ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    cad "committé" l'update ?

  7. #7
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Le COMMIT est la commande qui valide la modification dans la base. Sans COMMIT les modifications sont perdues (sauf dans le cas d'une base en mode AutoCommit)

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Carter
    Jusqu'à présent, en local, toutes les requêtes SQL ont été effectuées.

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Que te donne la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Questionnaire.emailPerso, COUNT(*) 
    FROM Parrainage, Questionnaire
    WHERE Parrainage.emailParrain = Questionnaire.emailPerso
    GROUP BY Questionnaire.emailPerso

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Carter
    Voila ce que me donne le resultat:

    id nom prenom emailperso emailparrain
    1 vial dvd dvd.vial@free.fr david@helvyremediacom.fr
    2 vial toto dvd@free.fr david@helvyremediacom.fr
    3 fancis lo dvd@grt.fr david@helvyremediacom.fr
    16 tour jen phi dvd.vi@free.fr david@helvyremediacom.fr
    9 phil fzeifo giig@frree.fr david@helvyremediacom.fr

  11. #11
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Ce n'est sans doute pas la requête que je t'ai donné...

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Carter
    Pardon, voila le resultat:
    david@helvyremediacom.fr 5

    Par contre d'après mes tables, il devrait être à 1.
    Car un seul des parrainées de david@helvyremediacom s'est parrainé.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Carter
    J'ai trouvé le résultat de la requête:
    SELECT Parrainage.emailParrain, COUNT( * )
    FROM Parrainage, Questionnaire
    WHERE Parrainage.emailPerso = Questionnaire.emailPerso
    GROUP BY Parrainage.emailParrain
    LIMIT 0 , 30

    qui me donne
    emailParrain COUNT( * )
    david@helvyremediacom.fr 2

    Par contre pour la modif dans la table, je fais comment ?

Discussions similaires

  1. Pooling sur une table SQL
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/11/2004, 23h10
  2. [PHPMyAdmin] Renommer une table SQL
    Par ferdi67 dans le forum Outils
    Réponses: 2
    Dernier message: 04/10/2004, 09h39
  3. [C#] Récupération d'une image depuis une table SQL Server
    Par borgfabr dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/04/2004, 13h20
  4. résultat de requêtte sql sous form de table
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 5
    Dernier message: 08/03/2004, 15h19
  5. [DEB.] - Transposer une table SQL en XML SCHEMA ???
    Par oulahoup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2003, 15h11

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