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

Bibliothèques et frameworks PHP Discussion :

[Artichow] Graphique remplacé par de drôle de caractère (ASCII ?)


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut [Artichow] Graphique remplacé par de drôle de caractère (ASCII ?)
    Bonjour à tous,

    Je vous expose mon soucis, car je tourne en rond et après plusieurs recherche sur internet je n'arrive pas à trouver la solution:

    Je veux afficher un histogramme (mais j'ai essayé avec une courbe et un camembert idem) avec des données venant de ma bdd.

    Seulement le visiteur selectionne la base de donnée pour laquelle il veut voir le graphique via un formulaire.

    j'ai donc mon fichier qui à cette tête là

    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
     
    <?php
    include('lefichieravecleformulaireetsontraitement');
    $date_commits = mysql_query(" marequetesql");
    while ($date_aff = mysql_fetch_array($date_commits))
    {
    $values_commits[] = $date_aff['id_commits'];
    $values_date[] = $date_aff['date_affichage'];
    }
    require_once "Artichow/LinePlot.class.php";
    $graph = new Graph(800, 400);
    $graph->setAntiAliasing(FALSE);
    $plot = new LinePlot($values_commits);
    $plot->setBackgroundGradient(
    new LinearGradient(
    new Color(210, 210, 210),
    new Color(250, 250, 250),
    0
    )
    );
    $plot->label->set($values_commits);
    $plot->xAxis->setNumberByTick('minor', 'major', 12);
    $plot->xAxis->setLabelText($values_date);
    $plot->setSpace(5, 5, NULL, NULL);
    $graph->add($plot);
    $graph->draw();
    J'ai essayé de mettre dans le header ISO ou UTF8 ainsi que image png, mais rien n'y fait j'ai soit les caractères étranges affichés, soit avec le header d'image "L'image blablabla ne peut être affiché car elle contient des erreurs")..

    Je précise que mes données sont bien récupérés par ma requête sql puisque si je fais un echo, j'ai mes donnée qui s'affiche, et que sans le formulaire à priori cela fonctionne.

    Je vais d'ailleurs vous mettre le code du formulaire:
    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
    *<?php
    header("charset=iso-8859-1");
    include('mysql.php');
    // On affiche la liste des modules disponibles (et donc des bases de données)
    $module = mysql_list_dbs($connexion);
     
    # On compte le nombre de lignes de resultat
    $nombre_base=mysql_num_rows($module);
     
    //echo "Nous avons <font color=green>$nombre_base</font> bases disponible(s)<BR>";
    # On crée le formulaire qui pointera sur ce meme programme
    echo '<form method="post" action="' . $PHP_SELF .'" 
    <select NAME=nombase SIZE=$nombre_base>';
     
    #On affiche chaque ligne de resultat
    while ($ligne = mysql_fetch_row($module))
    { echo "<OPTION>$ligne[0]";}
    echo '
    </select><br />
    <input type=submit value=soumettre>
    <input type=reset value=reset></form>';
     
    # Partie pour le traitement du resultat une fois une base selectionnee
    if (!empty($_POST['nombase'])) { 
    echo 'Vous avez choisi d acc&eacute;der &agrave; la base :' . $_POST['nombase'] . ' <br /> '; }
    else
    	{echo 'Veuillez selectionner un module';  }
     
    #On se connecte a la base
    if(!mysql_select_db($_POST['nombase'],$connexion))
    { echo ' Erreur de selection de la base :' .  $_POST['nombase'] . '<br>'; exit();}
    else
    { echo 'Ouverture de la base :' . $_POST['nombase'] . 'ok<br>'; }
    ?>
    Si quelqu'un a une idée je prends parce que là je tourne en rond depuis trois jours...

    Merci d'avance

  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
    Par défaut
    "L'image blablabla ne peut être affiché car elle contient des erreurs"
    enregistre ton image et ouvre la avec un editeur de texte pour voir ce que contient le fichier ; tu dois avoir des erreurs PHP ou du moins des éléments qui sont étrangers à l'image au début.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut
    Comment faire pour enregistrer l'image? (le clic droit ne me le propose pas, et la fonction file_input ne semble pas fonctionné)..

    Merci de prendre du temps pour m'aider

  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
    Par défaut
    normalement avec internet explorer, tu n'as pas le message mais bien l'erreur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut
    Oui mais je suis sous Firefox 3.5 (pas de IE sous Linux)

  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
    Par défaut
    Met des header() de telechargement au lieu de ceux de l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Content-disposition: attachment; filename=image.txt");
    header("Content-Type: application/force-download");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par kovalsky Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    include('lefichieravecleformulaireetsontraitement');
    il ne faut pas inclure le formulaire dans le script qui produit l'image
    le script qui produit l'image doit avoir cette structure :
    1. récupération des informations en lisant le tableau $_POST
    2. requête SQL pour construire les données à afficher dans l'image
    3. envoi de l'entête "Content-type"
    4. génération de l'image

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Par défaut
    problème résolu en utilisant les sessions, plus besoin d'include, mon fichier contient uniquement ma requette sql et la génération de l'image.

    Merci de votre aide en tout cas.

    Si ça peut servir,voici le code:
    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
     
    <?php
    session_start();
    //On se connecte à la bdd et on selectionne la bonne base
    mysql_connect('serveur','utilisateur','motdepasse');
    mysql_select_db($_SESSION['baseselec']);
    //On récupère les informations nécessaires à la générations du graphique
    $nb_committer_by_commits = mysql_query(" SELECT DISTINCT(committer_id) AS commiters, name AS committers_name, COUNT(scmlog.id) AS id_commits  FROM scmlog, people WHERE scmlog.committer_id=people.id GROUP BY committers_name ORDER BY id_commits DESC"); 
     
    $values = array();
     
    while ($commiter_by_commit = mysql_fetch_array($nb_committer_by_commits) )
    {
    $values_commits2[] = $commiter_by_commit['id_commits'];
    $values_committers[] = $commiter_by_commit['committers_name'];
    }
     
    require_once "Artichow/BarPlot.class.php";
     
       $graph = new Graph(14000, 1000);
       $graph->setAntiAliasing(FALSE);
     
       $plot = new BarPlot($values_commits2);
       $plot->setBarColor(
          new Color(250, 230, 180)
       );
     
    $plot->label->set($values_commits2);	
    $plot->xAxis->setLabelText($values_committers);
       $graph->add($plot);
       $graph->draw();
     
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] remplacer null par une chaine de caractère
    Par Bernard123 dans le forum VBA Access
    Réponses: 8
    Dernier message: 20/04/2007, 16h35
  2. Label d'axe graphique: remplacer les nombres par des mots
    Par Chrysomallus dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/04/2007, 15h23
  3. Réponses: 5
    Dernier message: 26/11/2006, 17h32
  4. Réponses: 5
    Dernier message: 30/10/2006, 13h37
  5. [XSLT] Remplacer par des caractères spéciaux
    Par OXyGN dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 29/07/2005, 17h30

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