Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1765 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  rafraichissement automatique affichage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

rafraichissement automatique affichage

n°1588765
meijin
Posté le 19-07-2007 à 13:23:37  profilanswer
 

Bonjour,
 
Je dois actuellement faire un script gérant l'affichage du planning des différentes classes d'une école sur les téléviseurs situés dans les locaux. Je me suis orienté vers le php dans un premier temps mais je gélère un peu !!
Tout d'abord les données sont dans une base de donnée oracle, la communication et l'interrogation avec elle se passe bien mais c'est au niveau de l'affichage que j'ai du mal, il faudrais en gros afficher les résultats 6 lignes par 6 lignes avec un rafraichissement automatique de l'affichage au bout de disons 10 secondes. A la base j'ai fais ma requete avec un rownum (équivalent de limit) selectionnant les enregistrements 6 par 6 mais bon ca fais quand meme faire une requete toutes les 10 secondes et cela jour et nuit, c'est quand meme pas génial !
 
Moi en général j'affiche le résultat d'une requete dès quelle sors grâce à un while mais bon ca me fais tout afficher et si je veux autre chose je refais une requete en demandant d'autres données ce qui est lourd.
 
Donc j'aimerai savoir si il y as une possibilité pour garder le résultat de la requete dans un tableau par exemple afin d'afficher ce qui me conviens petit a petit et de ne réinterroger la base de donnée mettons toutes les 15 min ce qui serait plus raisonnable !
 
Donc je recherche des pistes surtout que je finis mon stage demain donc il faut que je m'en sorte ce coup ci !
 
Merci d'avance

mood
Publicité
Posté le 19-07-2007 à 13:23:37  profilanswer
 

n°1588766
dwogsi
Défaillance cérébrale...
Posté le 19-07-2007 à 13:27:10  profilanswer
 

meijin a écrit :

ca fais quand meme faire une requete toutes les 10 secondes et cela jour et nuit, c'est quand meme pas génial !


C'est rien du tout ouai...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1588772
meijin
Posté le 19-07-2007 à 13:40:53  profilanswer
 

dwogsi a écrit :

C'est rien du tout ouai...


 
Attention je dis pas que ca fais beaucoup, seulement que j'aimerai faire en sorte qu'il y en ais moins... déjà ca choque mon maitre de stage et ensuite si ya moyen de trouver une astuce pour se passer de ca, ca les arrangeraient eux parce qu'ils trouvent que c'est trop et moi parce que bon quand je fais un travail j'aime bien qu'il ne reste pas au fond d'un placard à moisir parce qu'un chef a décider que ca lui plaisais pas  :sarcastic:

n°1588776
cgo2
Dum spiro spero
Posté le 19-07-2007 à 13:48:47  profilanswer
 

J'ai absolument rien compris à ce que tu veux faire...


---------------
When it's from Finland it's good.  - Mon blog
n°1588784
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 14:03:40  profilanswer
 

Mets en place un système de cache:  
via php génère une page html contenant tes résultats, Affiche celle-ci sur tes téléviseurs, a chaque modif de la base regénère les pages html dont une partie des informations a été modifié.

n°1588792
Oreste
Posté le 19-07-2007 à 14:17:19  profilanswer
 

En php c est possible  
 
Ta requete -> data dans un array --> fonction array_slice() sur ton tableau pour les avoir 6 par 6  
 
Encore mieux en foutant des trigger sur tes tables tu sais si tes data ont été modifiées donc en gros tu reinterroge que si y a eu des modifs, sinon tuy reste sur le meme tablo et la pas requetage inutile

n°1588801
meijin
Posté le 19-07-2007 à 14:24:42  profilanswer
 

cgo2 a écrit :

J'ai absolument rien compris à ce que tu veux faire...


 
 
ouai je me disais bien aussi que j'étais pas clair.
En gros je suis dans une école et l'école affiche le planning des stagiaires chaque jour sur les téléviseurs qui trainent un peu partout (cours, salles,...)
Actuellement c'est fais en Excel 5 et ils veulent moderniser donc je le fais en php!
 
Ce qu'il faut c'est que php tape dans une base de données oracle pour recup toutes les données, donc ca pas de soucis et ensuite affiche ces données.
 
Mais je peux pas toutes les afficher en meme temps car ya pas d'écran de 15 km de hauteur :pt1cable:  
 
Comme j'ai fais le truc là tout de suite maintenant :pt1cable: , je récup 6 cours à chaque fois, les affiche, et au bout de 10 sec ya un lien automatique qui renvoie vers la page suivant (exactement comme pour une page de commentaires divisées en plusieurs pages pour ne pas faire 15 km de hauteur sauf que la ca se fais tout seul pas besoin de cliquer) pour afficher 6 résultats suivants et ainsi de suite.
 
Mais mon patron voudrais que je récup tout d'un coup (et non pas 6 résultats a chaque fois) , que je stock ca 1/4 d'heure dans un tableau par exemple pour ne faire une requete que toutes les 15 minutes du coup...
 
Mais bon les tableaux autant en C j'ai pas de soucis avec, autant en php je suis pas sur de mon coup !! et faire une requete seulement tous les 1/4 d'heure et pas a chaque rafraichissement de la page sincérement je vois pas...
 
Je suis pas encore très clair j'ai l'impression, faut dire que c'est pas simple à expliquer et pas clair dans ma tête :o

n°1588806
meijin
Posté le 19-07-2007 à 14:31:16  profilanswer
 

anapajari a écrit :

Mets en place un système de cache:  
via php génère une page html contenant tes résultats, Affiche celle-ci sur tes téléviseurs, a chaque modif de la base regénère les pages html dont une partie des informations a été modifié.


 
Ah oui l'idée est à creuser en effet je n'y avais pas penser! mais comment je peux détecter que la base de donnée à été modifiée si je fais pas des requetes souvent?  
 

Citation :

En php c est possible  
 
Ta requete -> data dans un array --> fonction array_slice() sur ton tableau pour les avoir 6 par 6  
 Encore mieux en foutant des trigger sur tes tables tu sais si tes data ont été modifiées donc en gros tu reinterroge que si y a eu des modifs, sinon tuy reste sur le meme tablo et la pas requetage inutile


 
Tu me parle un peu en chinois là, je dois avouer que les fonction avancées de php j'ai jamais vraiment creuser mais je vais prospecter un peu sur le net sur tout ca pour apprendre
 
Merci à tous les deux
 
Je sens que ca va etre hard a faire d'ici demain ^^

n°1588809
cgo2
Dum spiro spero
Posté le 19-07-2007 à 14:36:41  profilanswer
 

J'ai compris !
 
Je suis pour une solution similaire à celle d'anapajari : un système de cache tout bete (mais pas en html).
 
C'est très simple, ta page devient :
 
si cache existe & n'est pas expiré (modification inférieure à 15 minutes par exemple)
  je lis les données depuis le cache
sinon
  je lis les données depuis la base
  j'écris le cache
fin si


---------------
When it's from Finland it's good.  - Mon blog
n°1588815
meijin
Posté le 19-07-2007 à 14:42:34  profilanswer
 

cgo2 a écrit :

J'ai compris !
 
Je suis pour une solution similaire à celle d'anapajari : un système de cache tout bete (mais pas en html).
 
C'est très simple, ta page devient :
 
si cache existe & n'est pas expiré (modification inférieure à 15 minutes par exemple)
  je lis les données depuis le cache
sinon
  je lis les données depuis la base
  j'écris le cache
fin si


 
ah ouais ok je comprend mieux là, c'est en effet une solution qui me semble interessante... je vais aller de ce pas regarder comment mettre ce systeme de cache vu que je n'ai jamais toucher a cela... et je n'ai pas penser au fait qu'on pouvais donner une période de validité en plus
 
Merci beaucoup pour cette idée je pense que ca va etre tres bon ca :love:

mood
Publicité
Posté le 19-07-2007 à 14:42:34  profilanswer
 

n°1588824
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 15:06:34  profilanswer
 

euh ... [:w3c compliant]

 

Je continue à dire qu'il vaut mieux faire une page html.
En toute théorie dans ce genre d'appli, tu une partie "admin" qui te permet de modifier les informations.
Donc ce que je te disais c'est: "Chaque fois que l'administrateur modifie les informations tu regénères les pages HTML concernées".

 

Maintenant vu que c'est un emploi du temps et que d'après ce que je comprends tu n'affiches qu'une vue partielle de celui-ci ( vue partielle "mouvante" d'heure en heure), je générerais les différents pages de toutes les heures en une et une seule fois.
Ensuite sur tes télés tu affiches un page php qui en fonction de l'heure va lire la bonne page générée.

 

Ah et tu vas me dire:"Ouais mais si aucune information n'est modifié, mes pages sont pas à jour". Effectivement, c'est pour ça qu'il te faudra rajouter un script dans la cron, qui tourne quotidiennement pour mettre à jour les différents pages.

Message cité 2 fois
Message édité par anapajari le 19-07-2007 à 15:07:36
n°1588844
meijin
Posté le 19-07-2007 à 15:23:05  profilanswer
 

anapajari a écrit :

Je continue à dire qu'il vaut mieux faire une page html.
En toute théorie dans ce genre d'appli, tu une partie "admin" qui te permet de modifier les informations.
Donc ce que je te disais c'est: "Chaque fois que l'administrateur modifie les informations tu regénères les pages HTML concernées".


 
La partie admin par contre n'est pas en html mais c'est une interface d'un logiciel. Et elle n'est pas du tout sur le serveur ou la page que je fais est (la base oracle n'est pas non plus sur le meme serveur dailleurs). Je sais pas si ca pose pb suivant ce que tu dis
 

anapajari a écrit :

Maintenant vu que c'est un emploi du temps et que d'après ce que je comprends tu n'affiches qu'une vue partielle de celui-ci ( vue partielle "mouvante" d'heure en heure), je générerais les différents pages de toutes les heures en une et une seule fois.
Ensuite sur tes télés tu affiches un page php qui en fonction de l'heure va lire la bonne page générée.


 
Il faut savoir une chose, les cours sont par demi-journées (pas très important je sais mais petite précision) ensuite, toi tel que je comprend ce que tu dis c'est en gros le matin on fais la requete pour toute la journée et ensuite on joue avec le résultat... ce qui n'est pas possible car des cours peuvent être ajoutés à tout moment de la journée pour le jour même voire même des cours peuvent être ajoutés pendant que le cours est en train d'être fait (je suis dans un établissement de formation pas un lycée) donc en gros... en admettant que j'ai tout compris correctement, ca poserais un peu pb !
 
Il faut vraiment qu'une requete soit lancée tous les 1/4 d'heure sinon plus rien n'est à jour
 
A moins que je n'ai pas compris ce que tu as dis, ce qui n'est pas impossible vu mon état aujourdui :sleep:

n°1588854
cgo2
Dum spiro spero
Posté le 19-07-2007 à 15:28:48  profilanswer
 

anapajari a écrit :

Je continue à dire qu'il vaut mieux faire une page html.


 
Bof, je suis pas fan de la pré-génération du html par le back, je trouve ça beaucoup plus contraignant : il faut modifier l'interface d'admin en plus, ajouter une cron pour décacher, faire pleins de petits fichiers, etc.
 
Cacher les données brutes, c'est ptet un peu moins efficace, mais vu qu'il fini son stage demain, amha c'est ce qu'il y a de + rapide à faire !


---------------
When it's from Finland it's good.  - Mon blog
n°1588859
cgo2
Dum spiro spero
Posté le 19-07-2007 à 15:30:38  profilanswer
 

meijin a écrit :

A moins que je n'ai pas compris ce que tu as dis, ce qui n'est pas impossible vu mon état aujourdui :sleep:


 
C'est pour ça qu'il te dit d'utiliser une cron pour régénérer les pages tous les 1/4 d'heure.


---------------
When it's from Finland it's good.  - Mon blog
n°1588864
Oreste
Posté le 19-07-2007 à 15:34:09  profilanswer
 

Moi aussi je campe sur ma position :d Un trigger sur une table est encore plus simple a mettre en place pour detecter une éventuelle modification des données...

n°1588874
cgo2
Dum spiro spero
Posté le 19-07-2007 à 15:39:50  profilanswer
 

Oreste a écrit :

Moi aussi je campe sur ma position :d Un trigger sur une table est encore plus simple a mettre en place pour detecter une éventuelle modification des données...


 
Et comment ton trigger préviens PHP de regéner le cache ? Ou bien tu fais tout en pl/sql ?


---------------
When it's from Finland it's good.  - Mon blog
n°1588879
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 15:44:17  profilanswer
 

cgo2 a écrit :

Bof, je suis pas fan de la pré-génération du html par le back, je trouve ça beaucoup plus contraignant : il faut modifier l'interface d'admin en plus, ajouter une cron pour décacher, faire pleins de petits fichiers, etc.


ça dépend de beaucoup de critères, entre autres:
- fréquence et volumétries des informations "changeantes"
- fréquence et volumétrie des accès

cgo2 a écrit :

Cacher les données brutes, c'est ptet un peu moins efficace,


A ce moment autant se servir de SGBD et faire une vue matérialisé et les requêtes qui tappent dessus. C'est fait pour [:spamafote]

cgo2 a écrit :

mais vu qu'il fini son stage demain, amha c'est ce qu'il y a de + rapide à faire !


euh  [:roane] c'est pas spécialement long d'utiliser les fonctions ob_* pour rediriger un flux dans un fichier plutôt qu'à l'écran.
 
 

n°1588885
meijin
Posté le 19-07-2007 à 15:51:06  profilanswer
 

cgo2 a écrit :


Cacher les données brutes, c'est ptet un peu moins efficace, mais vu qu'il fini son stage demain, amha c'est ce qu'il y a de + rapide à faire !


 
Si je dois bosser chez moi après mon stage ca me dérange pas non plus mais faut pas une solution qui prenne trois semaines quoi c'est tout ! :)  
 
 
En toutcas dans les 2 solution données je ne sait pas faire. Donc je ne sais pas ce qui est le plus efficace.
 
Par contre la solution de Oreste, je sais faire des triggers, mais je vois vraiment pas comment informer le php des changements après !! Si tu as une explication...

n°1588967
cgo2
Dum spiro spero
Posté le 19-07-2007 à 17:25:31  profilanswer
 

anapajari a écrit :

ça dépend de beaucoup de critères, entre autres:
- fréquence et volumétries des informations "changeantes"
- fréquence et volumétrie des accès


 
oui, ça dépend.
 

anapajari a écrit :


A ce moment autant se servir de SGBD et faire une vue matérialisé et les requêtes qui tappent dessus. C'est fait pour [:spamafote]


 
Ah c'est possible (je travaille jamais avec Oracle, je pense pas à ce genre de trucs).
 
En fait j'ai simplement répondu à ça sans vraiment reflechir plus loin :
 

Citation :

Mais mon patron voudrais que je récup tout d'un coup (et non pas 6 résultats a chaque fois) , que je stock ca 1/4 d'heure dans un tableau par exemple pour ne faire une requete que toutes les 15 minutes du coup...


 
Mais après reflexion c'est sûr que c'est pas forcement la meilleure solution (le cache html c'est bien aussi).
 

anapajari a écrit :

euh  [:roane] c'est pas spécialement long d'utiliser les fonctions ob_* pour rediriger un flux dans un fichier plutôt qu'à l'écran.


 
Ce qui est "long" (tout est relatif evidemment) c'est d'adapter l'interface d'admin, créer la cron, etc. D'autant que l'interface d'admin en question à l'air un client lourd si j'ai bien compris, donc adaptation pas simple, etc. J'ai rien contre l'output buffering, mais moi je préfère l'utiliser en front pour générer le cache à la volée.


---------------
When it's from Finland it's good.  - Mon blog
n°1589014
Oreste
Posté le 19-07-2007 à 19:05:06  profilanswer
 

Pour mon histoire de trigger il doit y a avoir moyen de flagger ca à l'exterieur...

 

Une solution rapidos dans le corps des trigger serait de creer un fichier "junk.txt". Ensuite dans ton script php tu test si le fichier existe, si ok je raffraichis mes données sinon je continues avec les memes... et des que tu met a jour les données via SQL et ben tu vire le fichier.

 

Enfin la c est la solution bourrin mais doit y avoir des trucs plus propres :) en tout cas avec les triggers c est optimal pour limiter les requetes sur ton serveur et avoir les données synchro.

Message cité 1 fois
Message édité par Oreste le 19-07-2007 à 19:06:24
n°1589116
anapajari
s/travail/glanding on hfr/gs;
Posté le 20-07-2007 à 09:08:56  profilanswer
 

Oreste a écrit :

Pour mon histoire de trigger il doit y a avoir moyen de flagger ca à l'exterieur...
Une solution rapidos dans le corps des trigger serait de creer un fichier "junk.txt". Ensuite dans ton script php tu test si le fichier existe, si ok je raffraichis mes données sinon je continues avec les memes... et des que tu met a jour les données via SQL et ben tu vire le fichier.
Enfin la c est la solution bourrin mais doit y avoir des trucs plus propres :) en tout cas avec les triggers c est optimal pour limiter les requetes sur ton serveur et avoir les données synchro.


 [:kains] au secours ...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  rafraichissement automatique affichage

 

Sujets relatifs
Affichage de zone de texte.Affichage de la date
Problème affichage FF / IE7noob html suite ----- onclick sans nouvelle fenetre
insertion de données automatique[PHP] Affichage données Mysql
Problème affichage sous IE [RESOLU]programe insertion annonce automatique
[résolu]Une balise script qui empêche tout affichage dans IEVista : création automatique d'un dossier compressé
Plus de sujets relatifs à : rafraichissement automatique affichage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR