Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Google Charts - pobranie danych z bazy
pshemoNL
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 10.10.2015

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
olszam
post
Post #2





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

Ostrzeżenie: (0%)
-----


  1. data.addRows(<?= echo $jsonstring; ?>);
linika 26 (IMG:style_emoticons/default/smile.gif)

Go to the top of the page
+Quote Post
Lukeup
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 5
Dołączył: 13.04.2018

Ostrzeżenie: (0%)
-----


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; ?>
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ale średnika brak, to fakt.
Srednik przy takiej konstrukcji nie jest do niczego potrzebny
Go to the top of the page
+Quote Post
olszam
post
Post #5





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.ś
Go to the top of the page
+Quote Post
pshemoNL
post
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 10.10.2015

Ostrzeżenie: (0%)
-----


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).
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to pokaz jak budujesz to zapytanie i jak tworzysz tablice z danymi
Go to the top of the page
+Quote Post
pshemoNL
post
Post #9





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 10.10.2015

Ostrzeżenie: (0%)
-----


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.  

Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:24