|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 85 ![]() |
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 |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Citation:
__________________
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) |
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 85 ![]() |
Non,tu as tout à fait raison....
...peut-etre que si je fais une copie du fichier... je cherche quand même une alternative aux multiples requetes nécessaires pour la solution de la table. Merci de vos réponses. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
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) |
|
|
00
|
|
|
#5 | ||
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 646 ![]() |
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 :
__________________
(\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant. http://mosfootball.over-blog.com |
||
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 85 ![]() |
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 |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
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) |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 85 ![]() |
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... |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
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) |
|
|
00
|
|
|
#10 | ||
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 646 ![]() |
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 :
J'espère que ceci pourras t'aider
__________________
(\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant. http://mosfootball.over-blog.com |
||
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
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) |
|
|
00
|
|
|
#12 |
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 646 ![]() |
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 |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 85 ![]() |
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 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com