2009-10-16 5 views
0

J'ai ce fichier C:\\xampp\htdocs\exact\sample_pie.php qui contient un graphique. voici le code:aide dans php file_get_contents

<?php 
include("phpgraphlib.php"); 
include("phpgraphlib_pie.php"); 
include("connection.php"); 
$graph=new PHPGraphLibPie(400,200); 
$link = mysql_connect('localhost', 'root', ''); 
mysql_select_db('exact'); 

$querypa = "SELECT COUNT(nature) FROM approved WHERE nature='Parade'"; 
$resultpa = mysql_query($querypa); 
$printpa = mysql_result($resultpa,0); 
$querycs = "SELECT COUNT(nature) FROM approved WHERE nature='Community Service'"; 
$resultcs = mysql_query($querycs); 
$printcs = mysql_result($resultcs,0); 
$queryga = "SELECT COUNT(nature) FROM approved WHERE nature='General Assembly'"; 
$resultga = mysql_query($queryga); 
$printga = mysql_result($resultga,0); 
$querypl = "SELECT COUNT(nature) FROM approved WHERE nature='Play/Showcase/Socio-Cultural Show/Film Showing'"; 
$resultpl = mysql_query($querypl); 
$printpl = mysql_result($resultpl,0); 
$queryco = "SELECT COUNT(nature) FROM approved WHERE nature='Competition/Sportsfest'"; 
$resultco = mysql_query($queryco); 
$printco = mysql_result($resultco,0); 
$queryfr = "SELECT COUNT(nature) FROM approved WHERE nature='Fund Raising'"; 
$resultfr = mysql_query($queryfr); 
$printfr = mysql_result($resultfr,0); 
$queryse = "SELECT COUNT(nature) FROM approved WHERE nature='Seminar/Convention/Conference/Training'"; 
$resultse = mysql_query($queryse); 
$printse = mysql_result($resultse,0); 


$totalAct=$printpa+$printga+$printpl+$printcs+$printco+$printfr+$printse; 
$avepa=($printpa/$totalAct)*100; 
$avecs=($printcs/$totalAct)*100; 
$avega=($printga/$totalAct)*100; 
$avepl=($printpl/$totalAct)*100; 
$aveco=($printco/$totalAct)*100; 
$avefr=($printfr/$totalAct)*100; 
$avese=($printse/$totalAct)*100; 
$pa=number_format($avepa,2); 
$cs=number_format($avecs,2); 
$ga=number_format($avega,2); 
$pl=number_format($avepl,2); 
$co=number_format($aveco,2); 
$fr=number_format($avefr,2); 
$se=number_format($avese,2); 

$data=array("Parade"=>$pa, "General Assembly"=>$ga, "Play/Showcase/Socio-Cultural Show/Film Showing"=>$pl, "Community Service"=>$cs, "Competition/Sportsfest"=>$co, "Fund Raising"=>$fr, "Seminar/Convention/Conference/Training"=>$se); 
$graph->addData($data); 
$graph->setTitle("Total Activities per Nature of Activity"); 
$graph->setPrecision(2); 
$graph->setLabelTextColor("0,0,0"); 
$graph->setLegendTextColor("0,0,0"); 
$graph->setGradient("210,245,255","pastel_purple"); 

$graph->createGraph(); 

?> 

comment puis-je obtenir le graphique comme .jpg par script php? J'ai essayé file_get_contents("C:\\xampp\htdocs\exact\sample_pie.php"); mais il émet seulement ceci:

$pa, "General Assembly"=>$ga, "Play/Showcase/Socio-Cultural Show/Film Showing"=>$pl, "Community Service"=>$cs, "Competition/Sportsfest"=>$co, "Fund Raising"=>$fr, "Seminar/Convention/Conference/Training"=>$se); $graph->addData($data); $graph->setTitle("Total Activities per Nature of Activity"); $graph->setPrecision(2); $graph->setLabelTextColor("0,0,0"); $graph->setLegendTextColor("0,0,0"); $graph->setGradient("210,245,255","pastel_purple"); $graph->createGraph(); ?> 

s'il vous plaît aidez-moi. Merci.

+0

La bibliothèque que vous utilisez sort le graphique au format GIF, il apparaît. Pourquoi avez-vous besoin de la sortie de l'image? – unrelativity

+0

J'ai besoin de mettre l'image dans un fichier pdf qui est un rapport annuel. l'image est un graphique. – noob

+0

Ne pouvez-vous pas l'enregistrer depuis votre navigateur? – unrelativity

Répondre

1

L'utilisation de file_get_contents() comme cela va seulement récupérer le script lui-même. Ce texte est ce que le fichier contient et c'est ce que fait file_get_contents(); exactement ce qu'il dit sur l'étain. Essayez de regarder la documentation pour PHPGraphLib ou dans le code source qui échoue. Il devrait y avoir une sorte de méthode de sauvegarde que vous pouvez appeler au lieu de createGraph() ou peut-être vous pouvez simplement passer un paramètre de nom de fichier à createGraph().

1

Sur une note, je dois mentionner que votre script est beaucoup plus compliqué qu'il ne devrait l'être. Tout entre mysql_select_db() et $graph->addData() pourrait être réécrite en quelque chose comme ceci:

$data = array(
    'Parade' => 0, 
    'Community Service' => 0, 
    'General Assembly' => 0, 
    'Play/Showcase/Socio-Cultural Show/Film Showing' => 0, 
    'Competition/Sportsfest' => 0, 
    'Fund Raising' => 0, 
    'Seminar/Convention/Conference/Training' => 0 
); 

$sql = "SELECT nature, COUNT(*) AS cnt 
      FROM approved 
     WHERE nature IN ('" . implode("','", array_keys($data)) . "') 
     GROUP BY nature"; 
$result = mysql_query($sql); 

while ($row = mysql_fetch_assoc($result)) 
{ 
    $data[$row['nature']] = $row['cnt']; 
} 
$totalAct = array_sum($data); 

foreach ($data as $nature => &$value) 
{ 
    $value = number_format(100 * $value/$totalAct, 2); 
} 

Pour le reste, consultez la documentation de votre bibliothèque graphique comme suggéré Ollie Saunders.

0
<img src="/exact/sample_pie.php" /> 

Vous pouvez utiliser header() pour définir le type de contenu approprié à l'intérieur sample_pie.php.