Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Google Charts - pobranie danych z bazy
Forum PHP.pl > Forum > Przedszkole
pshemoNL
Mam prosty wykres z Google Charts, który z poniższymi danymi działa elegancko.
Potrzebuję zamiast tych demonstracyjnych danych pobrać dane z trzech kolumn z bazy danych i wyświetlać je na wykresie.
Kombinowałem jak koń pod górę testując wiele przykładów i samouczków, aczkolwiek za każdym razem bez sukcesu.

  1. <?php
  2. $json = array();
  3. $dataRow = array(
  4. '2015-01-01',
  5. 6,
  6. 4
  7. );
  8. array_push($json, $dataRow);
  9. $dataRow = array(
  10. '2015-01-02',
  11. 8,
  12. 6
  13. );
  14. array_push($json, $dataRow);
  15. $jsonstring = json_encode($json);
  16. ?>
  17.  
  18. <script src="https://www.gstatic.com/charts/loader.js"></script>
  19. <script type="text/javascript">
  20. google.charts.load('current', {
  21. 'callback': function () {
  22. var data = google.visualization.arrayToDataTable([
  23. [{type: 'string', label: 'Data'}, {type: 'number', label: 'Kurs'}, {type: 'number', label: 'Wolumen'}]
  24. ]);
  25.  
  26. data.addRows(<?= $jsonstring ?>);
  27.  
  28. var options = {
  29. title: 'Internet Performance',
  30. curveType: 'function',
  31. legend: { position: 'top' }
  32. };
  33.  
  34. var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
  35.  
  36. chart.draw(data, options);
  37. },
  38. 'packages': ['corechart']
  39. });
  40. </script>
  41.  
  42.  
  43. <div id="curve_chart" style="height: 400px"></div>
olszam
  1. data.addRows(<?= echo $jsonstring; ?>);
linika 26 smile.gif

Lukeup
Tam jest skrócone echo. Ale średnika brak, to fakt.
  1. <?= $jsonstring; ?>

Warto również upewnić się, że można użyć takiego zapisu (od PHP 5.4 powinien być aktywny domyślnie), lub zmienić na
  1. <?php echo $jsonstring; ?>
nospor
Cytat
Ale średnika brak, to fakt.
Srednik przy takiej konstrukcji nie jest do niczego potrzebny
olszam
Cytat
Tam jest skrócone echo.
zapomniałem o jego istnieniu.

Jeszcze warto sprawdzić czy w ogóle ta zmienna posiada dane te co trzeba.
Pyton_000
Cytat(Lukeup @ 18.04.2018, 12:34:11 ) *
Warto również upewnić się, że można użyć takiego zapisu (od PHP 5.4 powinien być aktywny domyślnie)

Jest włączona i chyba nie da się jej wyłączyć. A przynajmniej nie próbowałem/nie znalazłem opcji do tego.ś
pshemoNL
Na podanym przykładzie wszystko działa jak należy.
Mój problem polega na odpowiedniej konstrukcji zapytania (zapewne zmiana linii 1-16) tak aby pobrało i wyświetliło dane z trzech kolumn w mojej bazie danych (zamiast tych przykładowych danych $DataRow).
nospor
No to pokaz jak budujesz to zapytanie i jak tworzysz tablice z danymi
pshemoNL
Cytat(nospor @ 20.04.2018, 16:47:39 ) *
No to pokaz jak budujesz to zapytanie i jak tworzysz tablice z danymi


  1. <?php
  2. $json = array();
  3. $conn = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
  4. $sql = "SELECT * FROM history WHERE action = '14' group by issued_time ORDER BY issued_time ASC";
  5. $result = $conn->query($sql);
  6. if ($result->num_rows > 0) {
  7. while($row = $result->fetch_assoc()) {
  8. $dataRow = array(
  9. $row['issued_time'],
  10. $row['value'],
  11. $row['amo']
  12. );
  13. array_push($json, $dataRow);
  14. }
  15. }
  16.  
  17. $jsonstring = json_encode($json);
  18. ?>
  19.  

Pyton_000
No to teraz przed kodowaniem do json wyświetl sobie całą tablicę:

var_dump($json);

Ew. sprawdź w konsoli developerskiej przeglądarki bo jak masz błąd to tam będzie.
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.