Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][MySQL][PHP]PHPGraphLib - daty z bazy danych jako etykiety na osi X
Forum PHP.pl > Forum > Przedszkole
mic132
Hej. Chciałem zrobić wykres przedstawiający ilość alarmów, jakie pojawiły się danego dnia, z każdego czujnika osobno. Wykres wygląda póki co tak:

Chciałbym, aby na osi X jako etykiety pojawiały się daty, w których miały miejsce następujące alarmy. Ponadto można określić, jaki przedział czasowy nas interesuje. Oto mój kod:
  1. <?php
  2. include("phpgraphlib.php");
  3. //connection witch database
  4. $connection = @mysql_pconnect('127.0.0.1','root','password')
  5. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  6. $db = @mysql_select_db('TankRanger', $connection)
  7. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  8. $graph= new PHPGraphLib(800,600);
  9. //print_r($_GET);
  10. //by GET i`m reading range of date
  11. $from = $_GET['from'];
  12. $to = $_GET['to'];
  13. //from database i`m reading description for each alert
  14. $sql = mysql_query('SELECT description FROM ALARM_DESCRIPTIONS;');
  15. $p = 0;
  16. while ($row = mysql_fetch_array($sl, MYSQL_NUM)) {
  17. $error[$p] = $row[0];
  18. $p++;
  19. }
  20. //I`m reading date from MySQL
  21. $dataArray = array();
  22. $k = 0;
  23. while($k < count($error)){
  24. $sql = "SELECT DATE(aei.date) as data,count(i.description) as liczba
  25. FROM ...";
  26. $result = mysql_query($sql) or die('Query failed: ' . mysql_error());
  27. $date = array();
  28. $count = array();
  29. if($result){
  30. while($row = mysql_fetch_assoc($result)){
  31. $date = $row['data'];
  32. $count = $row['liczba'];
  33. $dataArray[$date] = $count;
  34. }
  35. }
  36.  
  37. $big[$k] = $dataArray;
  38. $k++;
  39. }
  40. //because there is 10 types of alarms, I wanted to show every single in the picture, on the x-axis I wanted type which day, and on the y-axis how much alarms did we noticed during these day.
  41. $graph->addData($big[0],$big[1],$big[2],$big[3],$big[4],
  42. $big[5],$big[6],$big[7],$big[8],$big[9]);
  43. $graph->setLineColor("#f30000","#ffff00","#05be00","#0062ff",
  44. "#662c91","#a50b5e","#ffc0db","#ff6700","#62070b","#60742c");
  45. $graph->setTitle("Ilosc alarmow dziennie");
  46. $graph->setLegend(true);
  47. $graph->setDataPointColor('red');
  48. $graph->setBars(false);
  49. $graph->setXValues(true);
  50. $graph->setYValues(true);
  51. $graph->setDataValues(true);
  52. $graph->setLine(true);
  53. $graph->setDataPoints(true);
  54. $graph->createGraph();
  55. ?>


Z góry dziękuję za odpowiedź.
 
Daimos
patrząc po dokumentacji, ta biblioteka nie umożliwia tworzenia własnych etykiet na każdej wartości
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.