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 :

[Conception] Une liste d'amis


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut [Conception] Une liste d'amis
    Bonjour à tous,

    je developpe actuellement mon premier site en php.

    Je cherche comment créer et afficher une liste d'amis pour chaques membres inscrits sur ce site.

    J'hesite donc à créer une table qui enregistra l'id du membre et les id des amis ou alors gérer cette liste comme un panier virtuel.

    Si je choisis de faire une table,il va falloire une requete pour chaque ami (récupérer le pseudo,etc...) chaque fois que je charge une page qui affiche ces info (c'est à dire tout le temps à paritr du moment où on est connecté).
    -->ralentissement du site (bien que je sois incapable de prevoir la charge que cela represente... )

    Si j'enregistre les infos sur la session, je dois faire en sorte qu'elle ne soit jamais supprimée.
    -->si 10 000 membre = 10 000 sessions toujours actives

    Voila mon dilemme...

    Si vous avez une idée ou juste un conseil à me donner,je suis tout ouï.

    Merci

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par Attilius
    Si j'enregistre les infos sur la session, je dois faire en sorte qu'elle ne soit jamais supprimée.
    Quand l'utilisateur quitte le site la session associée se termine, tu peux pas les conserver tout le temps, je me trompe
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut
    Non,tu as tout à fait raison....

    ...peut-etre que si je fais une copie du fichier... ...non, c'est nul comme idée

    je cherche quand même une alternative aux multiples requetes nécessaires pour la solution de la table.

    Merci de vos réponses.

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Tu peux faire un mix.

    Quand l'utilisateur se connecte, tu charges sa liste d'amis grâce à une requête avec jointure (donc une seule requête pour tout récupérer), et tu peux stocker cette liste dans une variable de session.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Salut,
    A ta place, je créerai une table avec deux champs. Une avec l'ID de l'utilisateur, et une avec l'ID de son ami. Ensuite tu n'as plus qu'a faire cette requete pour récupérer la liste des amis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT ID_ami
    FROM T_ami
    WHERE ID_user="user";
    La valeur user, peut etre récupérer par une variable de session.
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut
    Merci de vos réponses....

    griese : ma table est construite de cette manière mais avec 15 champs pour les 15 id des amis...

    Jwhite:
    ....excellente idée. Je vais de ce pas faire un essai.J'ai juste un doute sur le fait de pouvoir ecrire un tableau de 15 colonnes dans la session..mais bon,on vera...

    Encore merci

  7. #7
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Le nombre d'amis est fixé à 15 et ne peut pas bouger ?!?
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut
    J'ai décidé de façon arbitraire que le max d'amis serait 15...
    mais en fait je l'ai fait surtout parce que je me vois pas comment faire autrement...

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Bah dans tu fais une table comme l'a dit griese dans laquelle tu as deux champs id_user et id_ami. C'est sûr que ça fait une table avec pas mal d'enregistrements mais bon...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  10. #10
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Pour faire ton tableau je te propose ceci.
    Déja tu fais une table comme je te l'ai montré c'est à dire :
    T_ami(ID_user, ID_ami); ID_user étant la clé primaire.
    De plus, tu dois surement demander à l'utilisateur de se connecter quelque part sur ton site. Dans ce cas, tu récupère cette valeur dans une variable de session. Appelons cette variable $_SESSION['login']. Ensuite pour afficher la liste d'ami de l'utilisateur connecté, tu met ceci :
    En supposant que le ID_user correspondent au login saisie par la personne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $query=mysql_query("SELECT ID_ami FROM T_ami WHERE ID_user='".$_SESSION['login']."';");
    while ($ligne=mysql_fetch_object($query) {
    echo $ligne->ID_ami."<br>";
    }
    Avec ceci tu afficheras tous les amis de la personne avec les nom des amis l'un en dessous de l'autre.
    J'espère que ceci pourras t'aider
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  11. #11
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Oui mais il veut éviter (légitimement) de faire la requête sur toutes les pages.
    Donc il faut faire ce que tu proposes uniquement au moment de la connexion de l'utilisateur au site, et mettre la liste des amis dans une variable de session.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  12. #12
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Ok d'accord, mais si il fait un include() après, sur les autres pages ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut
    Bon finalement j'ai créé une table avec id membre et id ami.Les 2 champs sont en clés primaires (pour éviter les duplicatas).
    Avec une seule requête croisé sur la table contenant les noms des membres et sur la table des amis j'obtiens toutes les infos que je veux afficher.

    Je pense que ca posera pas de probleme tant que ces tables ne seront pas trop grandes,après........on vera...

    Merci pour vos réponses

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

Discussions similaires

  1. Comment créer une liste d'amis avec SQL
    Par mecmec dans le forum Requêtes
    Réponses: 8
    Dernier message: 03/10/2015, 12h47
  2. Souci pour une liste d'amis
    Par inoxis91 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/05/2011, 12h29
  3. Comment représenter une liste d'amis ?
    Par redvivi dans le forum Schéma
    Réponses: 2
    Dernier message: 06/04/2008, 11h18
  4. Réponses: 2
    Dernier message: 27/12/2005, 20h09
  5. [Conception] inserer des valeurs provenant d'une liste multiple
    Par digger dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 24/11/2005, 17h35

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