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 :

[JpGraph] jpgraph me dit que mon array est vide


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut [JpGraph] jpgraph me dit que mon array est vide
    Salut!

    J'ai crée un array (récupéré chez Oracle) et je cherche à en faire un joli graphique.
    Mais apparement mon array est pourri, et je ne comprend pas pourquoi
    Oracle 8i
    php5
    serveur ZMWS
    windows2000

    euh en gros, mon array, quand je l'affiche (dans un autre script) c'est une suite toute bête du style 1,2,3,4,5,6,..,11. (tout bête j'ai dis, hein)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 11 )

    le message d'erreur: une image m'annonce une jpgrap error: empty input data etc...
    ma page php:

    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
    <?php
    include_once ("src/jpgraph.php");
    include_once ("src/jpgraph_line.php");
     
    $conn = oci_connect("monlogin", "monmdp","monschema");
    if (!$conn) {$e = oci_error();  echo htmlentities($e['message']);exit;}
     
    function plouc($conn,$query) 
    {
    $qqqq = oci_parse($conn, $query);
    oci_execute($qqqq, OCI_DEFAULT);
    while (oci_fetch($qqqq)) { $ydata[]=oci_result($qqqq,1) ;}
    }
     
    $superrequete = 'SELECT rownum as nb FROM latable where rownum<12';
    plouc ($conn,$superrequete);
    // Il faut mettre des valeurs dans un tableau.
    // Vous pouvez les récupérer d'une base de données ou autres...
     // On créé l'objet Graph. Ces deux appels sont toujours nécessaires.
    $graph = new Graph(400,300);    
    $graph->SetScale("textlin");
     
    // On créé un tracé
    $lineplot=new LinePlot($ydata);
     
    // On ajoutte ce tracé au graph
    $graph->Add($lineplot);
     
    // On affiche le graphique
    $graph->Stroke();
    ?>

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Citation Envoyé par noxia Voir le message
    euh en gros, mon array, quand je l'affiche (dans un autre script) c'est une suite toute bête du style 1,2,3,4,5,6,..,11. (tout bête j'ai dis, hein)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 11 )
    La question n'est pas de savoir la tête qu'il a dans un autre script, mais celle qu'il a dans ce script là..

    En l'occurrence, si tu fais un var_dump de $ydata juste avant de l'utiliser, je te parie qu'il est vide et ce parce qu'il est affecté dans une fonction... Le plus simple serait de retourner le tableau en tant que résultat de ta fonction plouc.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut
    oui j'avais oublié de retourner le résultat.
    je viens de corriger.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function plouc($conn,$query) 
    {
    $qqqq = oci_parse($conn, $query);
    oci_execute($qqqq, OCI_DEFAULT);
    while (oci_fetch($qqqq)) { $le_tableau_attendu[]=oci_result($qqqq,1) ;}
    return $le_tableau_attendu;
    }
    je retourne le résultat de ma fonction ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ydata[]=plouc($conn,$superrequete);

    j'ai fait le var_dump, voci ce que j'obtiens mainteant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { [0]=> array(11) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" [4]=> string(1) "5" [5]=> string(1) "6" [6]=> string(1) "7" [7]=> string(1) "8" [8]=> string(1) "9" [9]=> string(2) "10" [10]=> string(2) "11" } } JpGraph Error Cannot use auto scaling since it is impossible to determine a valid min/max value of the Y-axis (only null values).
    Mais malgré celà, j'affiche tj pas de graphique

    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
    <?php
    include_once ("src/jpgraph.php");
    include_once ("src/jpgraph_line.php");
     
    $conn = oci_connect("monlogin", "monmdp","leschema");
    if (!$conn) {$e = oci_error();  echo htmlentities($e['message']);exit;}
     
    function plouc($conn,$query) 
    {
    $qqqq = oci_parse($conn, $query);
    oci_execute($qqqq, OCI_DEFAULT);
    while (oci_fetch($qqqq)) { $le_tableau_attendu[]=oci_result($qqqq,1) ;}
    return $le_tableau_attendu;
    }
     
    $superrequete = 'SELECT rownum as nb FROM untable where rownum<12';
    $ydata[]=plouc($conn,$superrequete);
    $graph = new Graph(400,300);    
    $graph->SetScale("textlin");
     
    // On créé un tracé
    $lineplot=new LinePlot($ydata);
     
    // On ajoutte ce tracé au graph
    $graph->Add($lineplot);
     
    // On affiche le graphique
    $graph->Stroke();
    ?>

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu as besoin de mettre le tableau de résultats retourné par la fonction dans un autre tableau ou tu as mis des corchets en trop ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ydata[]=plouc($conn,$superrequete);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut
    ...j'ai fait le var_dump, j'ai édité mon second message (je ne sais pas si tu as vu! donc mon tableau n'est pas vide maintenant)

    les crochets d'après moi (
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ydata[]=plouc($conn,$superrequete);
    ) n'étaient pas en trop, mais je me trompe peut être.
    En fait je voulais des crochets pour obtenir un tableau, vu que la suite du script apelle un tableau pour jpgraph.

    donc quand je faissans crochets)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ydata=plouc($conn,$superrequete);
    j'obtiens un autre message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    JpGraph Error: HTTP headers have already been sent.
    Caused by output from file essai2.php at line 18. 
    Explanation:
    HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it's image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).
    Most likely you have some text in your script before the call to Graph::Stroke(). If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser. 
     
    For example it is a common mistake to leave a blank line before the opening "<?php".

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ya du progrès : maintenant ton script trouve les données mais n'arrive pas à tracer le graph...

    D'après le message d'erreur, tu dois avoir du texte affiché avant le graph. Donc il faut que tu vires tous les echos, var_dump et autres, que tu vérifies qu'il n'y a rien avant la balise <?php, pas même un espace, et là tu ressayes.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. [Pattern][Regex] vérifier que mon email est valide
    Par anitshka dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/05/2011, 13h03
  2. est ce que mon proxy est sécurisé avec cette config?
    Par kerkennah dans le forum Sécurité
    Réponses: 1
    Dernier message: 23/05/2007, 17h45
  3. Réponses: 1
    Dernier message: 08/02/2007, 09h11
  4. Réponses: 9
    Dernier message: 07/10/2006, 10h54
  5. [Dates] calcul de date est ce que mon code est bon?
    Par carmen256 dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2006, 11h30

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