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 :

enregistrer un graphique pour tous les utilisateurs


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Points : 37
    Points
    37
    Par défaut enregistrer un graphique pour tous les utilisateurs
    Bonjour, je dispose dans une base de données mysql,des données pour représenter un graphique commun à tout le monde. Les données sont mises à jour tous les soirs via un script shell par du cron sur un serveur.
    Pour l'instant à chaque fois qu'on accéde à la page, le graphique est créer avec du code php en faisant les requetes necessaires.
    Peut on avoir une programmation moins gourmande en requete ?
    Je pense à:
    un utilisateur arrive sur le site le matin le fichier image du jour n'existe pas, il est créé. Un dexième utilisateur accéde à la meme page l'image est juste affichée.
    C'est juste une idée, mais comment le programme t-on en php ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que tu as la possibilité d'ecrire le fichier image de ton graphique ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Points : 37
    Points
    37
    Par défaut
    oui, mais je ne comprends pas où vous voulez en venir ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ba tu fais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!file_exists('fichier.jpg') {
    // créé l'image
    }
    // affiche l'image

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Points : 37
    Points
    37
    Par défaut
    J'utilise imagepng($this->image) //gd
    pour afficher mon image. Il faut maintenant l'enregistrer, avec quelle fonction ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    bool imagepng ( resource image , string filename )

    imagepng envoie l'image GD ( image ) au format PNG sur la sortie standard (typiquement, le navigateur web), ou si filename est fourni, l'envoie dans un fichier.
    Exemple avec imagepng


    <?php
    $im = imagecreatefrompng("test.png");
    imagepng($im);
    ?>

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Points : 37
    Points
    37
    Par défaut
    J'ai remplacé dans le fichier graphique.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imagepng($this->imgFond,'http://www.monsite/20080719.png');
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imagepng($this->imgFond);
    et dans l'index (par l'intermediaire des templates)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!file_exists('http://www.monsite/20080719.png')) {
    // créé l'image
    $list_var['lien_graphique']='graphique.php';
    }
    else
    $list_var['lien_graphique']='http://www.monsite/20080719.png';
    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $list_var['lien_graphique']='graphique.php';
    Le template contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="{lien_graphique}" />
    Mais le graphique n'est pas créé.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le fichier est evidemment créé avec une reference locale.
    Comme dans l'exemple en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imagepng('20080719.png');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="20080719.png" />
    Le plus simple serait de donner a ton fichier un nom unique et non pas la date, a moins que tu veuilles conserver des archives.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Points : 37
    Points
    37
    Par défaut
    J'ai essayé en remplaçant par 20080719.png mais comment provoque t'on la création, si je ne mets pas graphique.php ?

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne l'ai pas retiré.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 79
    Points : 37
    Points
    37
    Par défaut
    voilà le code dans l'index.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (!file_exists('20080719.png')) {
    // créé l'image
    $list_var['lien_graphique']='graphique.php';
    }
    else
      $list_var['lien_graphique']='20080719.png';
    voilà le code dans le graphique.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    imagepng($this->imgFond,'20080719.png');
    voilà le code dans le template:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="{lien_graphique}" />
    Le problème c'est qu'aucune image n'est créée dans aucun répertoire.
    Il aurait il un problème avec les options du gd ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/12/2006, 22h21
  2. Réponses: 6
    Dernier message: 06/06/2006, 13h22
  3. autorun programs pour tous les utilisateurs du systeme
    Par mariogarcia dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 14/11/2005, 23h33

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