Garder en memoire le resultat d'une requete
Résolu/Fermé
maptiviou
Messages postés
29
Date d'inscription
mardi 13 février 2007
Statut
Membre
Dernière intervention
19 octobre 2012
-
22 avril 2008 à 16:45
maptiviou Messages postés 29 Date d'inscription mardi 13 février 2007 Statut Membre Dernière intervention 19 octobre 2012 - 24 avril 2008 à 10:22
maptiviou Messages postés 29 Date d'inscription mardi 13 février 2007 Statut Membre Dernière intervention 19 octobre 2012 - 24 avril 2008 à 10:22
A voir également:
- Garder en memoire le resultat d'une requete
- Évariste souhaite télécharger le logiciel 7-zip depuis le site de son éditeur. sélectionnez le résultat de recherche sur lequel il doit cliquer. - Forum Compression
- Évariste souhaite télécharger le logiciel mozilla firefox depuis le site de son éditeur. sélectionnez le résultat de recherche sur lequel il doit cliquer. ✓ - Forum Microsoft Edge / Internet Explorer
- Évariste souhaite télécharger le logiciel inkscape depuis le site de son éditeur. sélectionnez le résultat de recherche sur lequel il doit cliquer. - Forum Bureautique
- Mémoire virtuelle - Guide
- Mémoire vidéo dédiée : 128 mo ✓ - Forum Carte graphique
1 réponse
goldo
Messages postés
72
Date d'inscription
mercredi 23 juin 2004
Statut
Membre
Dernière intervention
28 juin 2010
8
22 avril 2008 à 17:18
22 avril 2008 à 17:18
Houa c'est pas banal comme problème, tu te compliques énormément la vie à afficher les films aléatoirement.
Mais bon ce que je ferais :
1. C'est de mettre le résultat de ta requête aléatoire dans un tableau dynamique.
2. affecter ce tableau à une variable session et aussi affecter à une autre variable session un chiffre qui sera le nombre d'élément dans ce tableau.
Puis sur la première page prendre les 10 premiers éléments du tableau, sur la deuxième les 10 suivants etc...
Avec ce procédé chaque page aura ses propres films, il n'y aura pas de doublons et cela restera toujours aléatoire car lors d'une prochaine visite, les films ne seront pas dans le même ordre.
Pour savoir le nombre de pages que tu auras besoin, il suffit de diviser le nombre d'éléments dans le tableau par 10.
Il faudra aussi utiliser des variables dans l'url pour savoir à partir de où dans le tableau je commence à prendre les 10 films suivant.
Etc...
Mais bon ce que je ferais :
1. C'est de mettre le résultat de ta requête aléatoire dans un tableau dynamique.
2. affecter ce tableau à une variable session et aussi affecter à une autre variable session un chiffre qui sera le nombre d'élément dans ce tableau.
Puis sur la première page prendre les 10 premiers éléments du tableau, sur la deuxième les 10 suivants etc...
Avec ce procédé chaque page aura ses propres films, il n'y aura pas de doublons et cela restera toujours aléatoire car lors d'une prochaine visite, les films ne seront pas dans le même ordre.
Pour savoir le nombre de pages que tu auras besoin, il suffit de diviser le nombre d'éléments dans le tableau par 10.
Il faudra aussi utiliser des variables dans l'url pour savoir à partir de où dans le tableau je commence à prendre les 10 films suivant.
Etc...
24 avril 2008 à 10:22
Le système de sessions semble être le meilleur moyen d'un point de vu fonctionnel mais il me pose le problème saturation du serveur, il tableau contenant plus de 2000 enregistrements à garder en mémoire pour chaque utilisateur risque de ralentir le chargement des pages.
Je n'en suis pas sûr mais il faudrait le tester, le problème est que le temps commence à manquer (j'y reviendrai plus tard, peut être pour le prochain site web).
Par contre j'ai utilisé une autre technique, un peu moins longue à mettre en place, un peu moins poussée mais tout à fait fonctionnelle par rapport à mes besoins; je la mets au cas où ça en intéresserait certains...
En fait je me suis basé sur la date pour créer une variable de randomisation.
Cette variable aura la forme suivante: AAAAMMJJH (ex: à l'instant même: 200804241)
Elle ne se modifie que 3 fois par jour mais cela est suffisant.
Voici le script php qui m'a permis de faire cela:
// Déclaration des variables:
$a = date("Ymd");
$b = date("H");
$a .= substr($b,0,1);
// Mise en place de la randomisation dans la requête
$sql = 'SELECT * FROM film ORDER BY RAND('.$a.') LIMIT '.$limite.',10';
Voilà donc deux bonnes méthodes pour afficher aléatoirement les enregistrements d'une base de données et de garder le même ordre d'une page à l'autre.
Encore merci goldo