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 :

Alternance de pages grâce à un while


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 49
    Par défaut Alternance de pages grâce à un while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php
    include("includes/mysql_connect.php");
    $tour = 1;
     
    $sql = "SELECT DISTINCT bureau FROM resultats WHERE tour = 1";
    $requete = mysql_query($sql, $cnx) or die(mysql_error());
    while ($result = mysql_fetch_assoc($requete))
    {
    	$bureau_actuel = $result['bureau'];
    	while ($temp < 4)
    	{
    		echo "<h1>Bureau #";
    		echo $bureau_actuel;
    		echo "</h1>";
     
    		$temp = $_GET['temp'];
    		if(empty($temp))
    		{
    		$temp = 1;
    		}
     
    		$sql2 = "SELECT type_affichage, temps FROM scenario WHERE tour = $tour AND representation = $temp";
     
    		$requete2 = mysql_query($sql2, $cnx) or die(mysql_error());
    		$result2 = mysql_fetch_assoc($requete2);
     
    		$type_affichage = $result2['type_affichage'];
    		$temps = $result2['temps'];
     
    		// Partie affichage
    		include(sprintf('%s.php', $type_affichage));	 
    		header("Refresh: {$temps};");
    		$temp++;
    	}
    }
    ?>
    Voici mon code, et voici ce que je n'arrive pas à faire et que je souhaiterais faire : il faudrait que la page reste figée sur une page X donnée en include, pendant un temps Y. Une fois ce temps Y fini, on passe à la page X' pendant un temps Y', etc etc etc...........

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Bonjour déjà

    Sans vouloir te vexer c'est purement n'importe quoi !
    Ce que tu veux faire doit se faire avec Ajax.

    Qu'est ce que tu essaie de faire concrètement ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 49
    Par défaut
    Je l'ai pourtant expliqué, dans le while le plus à l'intérieur vont ressortir tour après tour, donc 3 fois puisque c'est un while < 4, 3 solutions portant sur "type_affichage" et "temps".
    Je souhaiterais afficher ces 3 solutions une à une. Tout d'abord il faudrait que la première solution affiche pendant un temps $temps (qui est de 6s) la page "type_affichage" qui est donc la page 1.php pour la première solution. Une fois ces 6 secondes passées, on passe donc à la deuxième solution, avec une autre page 2.php qui s'affiche, pendant 6 secondes aussi. Puis une fois ces 6 secondes écoulées, on passe à la troisième page 3.php, qui durera aussi 6 secondes, et Là, la boucle est finie.

    See u :s ?!

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Ce que tu essaie de faire n'est pas possible.
    C'est le client, avec Ajax, qui doit implémenter ce comportement, pas le serveur.

    PHP est incapable d'afficher une page pendant x secondes avant de passer à une autre page, bien qu'il soit possible de temporiser l'affichage pendant x secondes, les données de la page n+1 vont s'afficher en dessous de celles de la page n.
    De plus, PHP à un temps d'éxécution maximum fixe (défini dans php.ini) au dela duquel il tombe et envoie une erreur.

    Ce que tu veux faire s'implémente avec Javascript, coté client donc, qui lui peut toute les x secondes demander un rafraichissement de la page (ou tout simplement d'une partie du contenu), tu peux utiliser un paramètre à passer dans l'URL pour faire ça.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 49
    Par défaut
    Hmm ok, et as-tu à peu près l'idée de comment m'organiser en Js stp ?

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Désolé mais j'ai pas le temps de le faire pour toi.
    Regarde des tutos par ici : http://docs.jquery.com/Tutorials

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Pour ma part, ce n'est pas obligatoire que ça se fasse en Ajax, je dirais qu'il faudrait voir la quantité de données totale que ça représente.

    - S'il y a en beaucoup, sous entendu beaucoup trop pour tout récupérer d'un coup, là Ajax sera une excellente alternative/solution.

    - Si la quantité de donnée n'est pas si énorme que ça (disons que cela ne va pas occasionner de surcharge du serveur et des longueurs pour les transmettre coté HTTP), et bien les récupérer de suite sera plus simple et léger à gérer par la suite.
    Par la suite, du pure JS sera amplement suffisant.
    Des codes JS genre diaporama foisonnent sur le Net, et si en plus on a déjà un FrameWork JS (genre jQuery, etc ...) ça sera d'autant plus simple.


    Ne pas perdre de vu que de mettre un Ajax qui va requêter son propre serveur toutes les X secondes peut être un sacré problème, plus particulièrement si c'est un mutualisé.
    Personnellement je perçoit ça un peu comme une ruche.
    Disons qu'il me semble qu'il faut voir les choses d'un peu plus près.

  8. #8
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Ne pas perdre de vu que de mettre un Ajax qui va requêter son propre serveur toutes les X secondes peut être un sacré problème, plus particulièrement si c'est un mutualisé.
    Personnellement je perçoit ça un peu comme une ruche.
    Disons qu'il me semble qu'il faut voir les choses d'un peu plus près.
    Et on peut avoir ton idée pour implémenter le comportement qu'il veut autrement qu'avec Ajax ?

  9. #9
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par Benjamin Delespierre
    Et on peut avoir ton idée pour implémenter le comportement qu'il veut autrement qu'avec Ajax ?
    Les solutions ne manquent pourtant pas avant d'en arriver à faire de l'Ajax.


    Si j'ai bien compris, le but est de faire tourner en boucle 3 pages selon une période.

    - On peu donc très bien se baser sur un simple cookie qui enregistrerait les 3 pages en question, et en pure JS une petite fonction récupèrerait le cookie, et selon la page en cours, lancer la page suivante au bout de la période.

    - Ou alors, on peu faire sensiblement la même chose en se basant sur les sessions.

    - Mais encore, et c'est un peu ce que j'évoquais, au lieu de résonner en page (soit tourner sur 3 page), on peu résonner en terme de contenu.
    En gros, ne peut on pas dire qu'il y aurait en faite qu'1 seule page dont une seule partie (ou 2, 3) serait à changer toutes les X secondes ?
    C'est bien souvent le cas d'ailleurs.

    Et bien si les contenus de cette même page ne sont pas si volumineux que ça, on peu tout renvoyer d'un coup, et avec un soupçon de Css (display : block/none) et une fonction pure JS de temporisation, on peu afficher juste une partie, et à chaque période masquer/démasquer les contenu tour à tour.
    C'est ni plus ni moins que le même principe des diaporamas en JS qui foisonnent sur le Net.


    Ca se peu qu'il y en ait d'autres de solutions si on cherche vraiment.
    Bref ... l'Ajax à mon sens ne s'impose pas forcément.
    Puis bombarder toutes les 10 secondes (à multiplier par le nombre de visiteurs) son propre serveur mutualisé de requêtes HTTP ... mouais ...
    Je réfléchirais plutôt à 2 fois avant de me lancer, à titre perso.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 49
    Par défaut
    Je réexplique en gros mon souhait :

    J'ai X bureaux qui affiche chacun 3 images différentes avec chacune un temps précis. Donc en gros je vais m'expliquer sous forme de lettres.
    On a bureau1 = B1, image1 = IMG1.
    Voici en gros le schéma :

    B1_IMG1(6s) -> B1_IMG2(6s) -> B1_IMG3(6s) -> B2_IMG1(6s) -> B2_IMG2(6s)... etc

    Avec le numéro de chaque bureau en dynamique, qui va ensuite chercher ses 3 images bien précises..

  11. #11
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    On peu donc très bien se baser sur un simple cookie qui enregistrerait les 3 pages en question, et en pure JS une petite fonction récupèrerait le cookie, et selon la page en cours, lancer la page suivante au bout de la période.
    Pour moi, à partir du moment ou tu mets du JS, pourquoi ne pas aller légèrement plus loin et d'implémenter ce comportement avec un méthodologie Ajax...

    Il ne faut pas non plus perdre de vue qu'Ajax permet de limiter les échanges client/serveur sur les pages en forte demande et d'optimiser l'ergonomie générale du site.

    Au final c'est vrai que ça revient au même.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 49
    Par défaut
    Une réponse à RunCodePhp :

    Les diaporamas dynamiques à la limite ça pourrait se faire, le truc c'est qu'en fait au tout départ, avant l'affichage, il faudrait donc, si j'ai bien compris, que le code retienne (en cookie par exemple) le fait qu'il y aura par exemple 7 bureaux à afficher dans un ordre croissant, et donc pour chaque bureaux il y aura 3 images différentes à afficher.. Donc en gros il faudrait carrément avoir l'ordre défini des 21 images, avec pour chacune de ses images leur temps d'affichage unique.. Est-ce bien ça ?!

    En gros, ne peut on pas dire qu'il y aurait en faite qu'1 seule page dont une seule partie (ou 2, 3) serait à changer toutes les X secondes ?
    Là je t'avouerais ne pas super bien comprendre ton arrière-pensée..

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 49
    Par défaut
    Du coup je recherche un système de diaporama dynamique où je pourrais avoir X images à afficher, avec pour chacune de ces images son temps unique..

  14. #14
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Du coup je recherche un système de diaporama dynamique où je pourrais avoir X images à afficher, avec pour chacune de ces images son temps unique..
    Tu saisie "diaporama javascript" (entre autre) dans Google ou autre tu en trouveras un sacré gros paquet, et de toutes sorte.

    A ce jours, beaucoup sont fait avec des FrameWork JS, tel que jQuery, etc ...

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 49
    Par défaut
    Ok merci, je vais me pencher là dessus : http://jquery.malsup.com/cycle/

Discussions similaires

  1. Afficher les pages grâce aux .class, sans .jsp
    Par Luke58 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/07/2009, 15h16
  2. [MySQL] liaison deux pages php en while
    Par kayne dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/12/2008, 19h48
  3. Centrer mes pages grâce au style CSS
    Par Arlet dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 08/08/2008, 16h54
  4. Alternative aux Page-break
    Par HWICE dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 30/05/2008, 15h58
  5. [HTML] Lier mon fichier CSS dans ma page grâce à LINK
    Par hellspawn_ludo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 11/04/2008, 17h07

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