Stockage plus rapide?

Stockage plus rapide? - PHP - Programmation

Marsh Posté le 12-01-2005 à 11:05:58    

Bonjour, voilà mon problème
 
disons que j'ai une table amis avec 3 champs l'id , ami1 et ami2
 
quand un membre se connect je stock son id en session.
 
Maintenant il va visiter une fiche , et j'affiche sa relation avec la personne de cette fiche : C'est a dire , si c un ami de niveau 1 (amis direct) de nivo 2 ( ami d'un ami)
 ou de nivo 3 ( ami d'un ami d'un ami )
 
Pour l'instant le plus rapide que j'ai trouvé c'est de balayé la table amis pour trouver les nivo 1 ( facile...) et je les stock dans une table nomée "tmp" si le couple n'existe pas, je recup les id des amis stocké dans tmp et je cherche leur amis pour déterminer si il y a un nivo 2 . Si oui ok , sinon je stock pour voir si nivo 3 ... voila en gros
 
J'aimerais savoir si il était possible de stocker ces id d'amis en session au lieu de les mettre dans une table? ( un peu lourd je pense en traitement) ET si oui comment ensuite balayé la session stockée pour recup les id et chercher les amis suivant ?...
 
Ou peut etre existe-til une routine plus simple?
 
merci

Reply

Marsh Posté le 12-01-2005 à 11:05:58   

Reply

Marsh Posté le 12-01-2005 à 13:38:57    

ça depend de la taille maximum que peut avoir cette session. il faut faire attention parce que :
1 session = 1 client = 1 fichier => taille du fichier.
Si il y a 30 clients qui ce connecet en même temps tu aurasi 30 X la taille du fichier ce qui peut commmencer a ralentir le serveur.
Pour y voir plus claire fait un model de données de ton ensemble. Moi j'ai pas trop compris mais bon j'ai pas dormi cette nuit donc :/

Reply

Marsh Posté le 12-01-2005 à 13:47:30    

Citation :

Moi j'ai pas trop compris mais bon j'ai pas dormi cette nuit donc


j'ai pas bcp dormi non plus, et en fait pas vraiment compris ce qu'il veut non plus...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 12-01-2005 à 15:50:53    

Est ce qu'on peut stocker les résultats d'une requête en session ? Bcp de résultats?  
Apres comment fait-on pour balayer ces résultats et s'en servir dans une autre requête?
Et est ce que c'est plus rapide que de stocker dans une table et effacer ensuite? merci

Reply

Marsh Posté le 12-01-2005 à 19:03:49    

oui tu peux placer ton recordset dans un tableau et le placer en session. mais comme je te l'ais dit si ça passe une certaine quantité d'information ça reduit les performance? j'avais fait un test sur un session qui faisait 1Mo ça rame enormement.

Reply

Marsh Posté le 12-01-2005 à 20:23:40    

ok super :)
 
Scuses moi tu pourrais me donner 2, 3 commandes pour faire ça? a part les $_SESSION[''] etc. comment je stock tout un tablo ?
et comment je le parcour apres ?  
 
merci pour l'info

Reply

Marsh Posté le 12-01-2005 à 22:44:44    

irong a écrit :

ok super :)
 
Scuses moi tu pourrais me donner 2, 3 commandes pour faire ça? a part les $_SESSION[''] etc. comment je stock tout un tablo ?
et comment je le parcour apres ?  
 
merci pour l'info


Code :
  1. //Récupération depuis une base pour une session.
  2. $rs   = NULL;
  3. $i    = 0;
  4. $Out  = array();
  5. $data = array();
  6. $rs = mysql_unbufered_query("SELECT id,nom,prenom FROM racaille" );
  7. while($data = mysql_fetch_accoc($rs))$Out[$i++] = $data;
  8. $rs = null;
  9. //regarde le contenu du tableau.
  10. print_r($Out);
  11. $_SESSION['rs'] = $data;


 
Pour la récupération je te le passerais plus tard car c'est sur mon portable mais entre temps tu peux regarde la fonction array_key qui va te permettre de récupérer tes résultat.


Message édité par Berceker United le 12-01-2005 à 22:46:43
Reply

Marsh Posté le 12-01-2005 à 22:57:25    

super merci vais essayer

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed