Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wykres w PHP
Forum PHP.pl > Forum > Przedszkole
graby0
Witam, potrzebuję zrobić wykres na którym przedstawię jakieś dane liczbowe lecz nie wiem jak się za to zabrać. W internecie jest trochę kodów, przykładów ale kiedy przekopiowuję je aby zobaczyć wykres na "żywo" to wyskakują błędy. Dane będą brane z bazy danych.
Przykładem takiego wykresu jest wykres kołowy stąd.

Czyli kod wykresu
Kod
<?php
include_once(‚./LabChartsPie.php’);
$LabChartsPie = new LabChartsPie();
$LabChartsPie->setData(array(100, 200, 200, 200, 430, 760, 54));
echo ‚<img src=”‚.$LabChartsPie->getChart().‚” />’;
?>

oraz jego błędy
Kod
Warning: include_once(./LabChartsPie.php): failed to open stream: No such file or directory in C:\xampp\htdocs\strona\gotowykomputer.php on line 177
Warning: include_once(): Failed opening './LabChartsPie.php' for inclusion (include_path='.;\xampp\php\PEAR') in C:\xampp\htdocs\strona\gotowykomputer.php on line 177
Fatal error: Class 'LabChartsPie' not found in C:\xampp\htdocs\strona\gotowykomputer.php on line 178
patrysiek2
www.php.pl/Wortal/Artykuly/PHP/Biblioteki/Generowanie-grafiki-w-PHP/Przyklad-3.-Generowanie-wykresow-w-PHP


graby0
Udało mi się rozwiązać ten problem:
Kod
<?php
$dane[] = array('Download',435);
$dane[] = array('Forum',234);
$dane[] = array('FAQ',369);
$dane[] = array('Licznik',517);
$dane[] = array('Artykuły',135);

// Pobieramy największy element
$max = 0;
foreach ($dane as $dana)
    if ($dana[1]>$max) $max = $dana[1];

// Obliczamy mnożnik
$mnoznik = 150/$max; // 150 to nasza maksymalna długość słupka

// No i do roboty
echo '<table border="0" cellspacing="0" cellpadding="4"';
foreach ($dane as $dana)
{
    echo   '<div class="wykres" style="text-align:left;">'  . '<tr><td>'.$dana[0].'</td><td><img src="img/bar1.gif" height="17" width="'.round($dana[1]*$mnoznik).'"><img src="img/barend.gif"></td><td>'.$dana[1].'</td></tr>'.'</div>';
}
echo '</table>';
?>


lecz teraz potrzebuję zmienić dane w array'u na dane z bazy danych. To znaczy że mam wyciągnąć z tabeli "ABC" wartości "Imie" i "Rok urodzenia".

Kod
$query = "SELECT nick,ocena FROM gotowykomputer_komentarze";     
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());

while ($row = mysql_fetch_array($result)) {
    $dane[] = array($row['nick'],$row['ocena']);  
}


Jedyny minus tego rozwiązania jest taki że tablica $dane wyświetla od 1 a nie od 0. To znaczy że ucina 1 rekord.

@Dziękuję SmokAnalog za pomoc. Wszytko działa jak należy.
SmokAnalog
Usuń ten wiersz:
  1. $row = mysql_fetch_array($result) or die(mysql_error());
graby0
Z kodem tym

Kod
mysql_query('SET NAMES \'utf8\'');
$query = "SELECT nick,ocena FROM gotowykomputer_komentarze where gotowykomputer_id='$idkomputera'";
$result = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_array($result)) {
$dane[] = array($row['nick'],$row['ocena']);
}


mam jeszcze taki problem ze ucina mi pierwszy zapis z bazy. Jeżeli wyniku sql'a nie będzie to wywala błędy kodu ponieważ później wyświetlam tą tablicę.

@ Użyłem if ($dane != null){ } i wszystko działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.