Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][SQL][PHP]Wykres dla każdej osoby z bazy
Nidan23
post 14.06.2019, 17:18:40
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 2
Dołączył: 26.04.2019

Ostrzeżenie: (10%)
X----


Staram się stworzyć cudne wykresy, dla każdej osoby z tabeli w bazie danych, oczywiście generowane automatycznie, w zależności od ilości rekordów w bazie, korzystam z google charts i mam taki kod:

  1. <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
  2. <script type="text/javascript">
  3.  
  4. google.charts.load("current", {packages:['corechart']});
  5. google.charts.setOnLoadCallback(drawChart);
  6. function drawChart() {
  7. var data = google.visualization.arrayToDataTable([
  8.  
  9. ['Nick','Donated','Received','Ufarmiony Elixir (/1000)','Ufarmione złoto (/1000)','Ufarmiony DE (/10)'],
  10. <?php
  11. $sql2 = "SELECT miejsce from klan";
  12.  
  13. $conn->query('SET NAMES utf8');
  14. $conn->query('SET CHARACTER_SET utf8_unicode_ci');
  15. $result2 = $conn->query($sql2);
  16.  
  17. if ($result2->num_rows > 0) {
  18. while($row2 = $result2->fetch_assoc()) {
  19. $tag = $row2["miejsce"];
  20. $sql = "SELECT nick, rdonated, received, uelixir, ugold, udark from klan WHERE miejsce = '$tag'";
  21.  
  22. $conn->query('SET NAMES utf8');
  23. $conn->query('SET CHARACTER_SET utf8_unicode_ci');
  24. $result = $conn->query($sql);
  25.  
  26. if ($result->num_rows > 0) {
  27. while($row = $result->fetch_assoc()) {
  28.  
  29. $uel = $row['uelixir'] / 1000;
  30. $ugo = $row['ugold'] / 1000;
  31. $uda = $row['udark'] / 10;
  32.  
  33. echo "['".$row['nick']."',".$row['rdonated'].",".$row['received'].",".$uel.",".$ugo.",".$uda."],";
  34. }
  35. }
  36. }
  37. }
  38. ?>
  39.  
  40. ]);
  41.  
  42. var options = {(...)};
  43. <?php $sql = "SELECT miejsce from klan";
  44.  
  45. $conn->query('SET NAMES utf8');
  46. $conn->query('SET CHARACTER_SET utf8_unicode_ci');
  47. $result = $conn->query($sql);
  48.  
  49. if ($result->num_rows > 0) {
  50. while($row = $result->fetch_assoc()) {
  51. echo 'var chart = new google.visualization.ComboChart(document.getElementById("'.$row["miejsce"].'")); chart.draw(data,options);'; } } ?>
  52.  
  53. }
  54.  
  55.  
  56. </script>


I wywołuje go tym:


  1. <div style="overflow-x:auto" >
  2. <?php $sql = "SELECT miejsce from klan";
  3.  
  4. $conn->query('SET NAMES utf8');
  5. $conn->query('SET CHARACTER_SET utf8_unicode_ci');
  6. $result = $conn->query($sql);
  7.  
  8. if ($result->num_rows > 0) {
  9. while($row = $result->fetch_assoc()) {
  10. echo '<div id="'.$row["miejsce"].'" style="width: 100%; height: 100%;"></div>';}}?>
  11. </div>



Mam już połowę sukcesu, bo wykres jest generowany tyle razy, ile jest rekordów, tylko problem leży w tym, że każdy pokazuje to samo biggrin.gif , czyli dane wszystkich w bazie, nie osoby z konkretnego miejsca, bądź tagiem.


Jakieś wskazówki, pomysły?
Go to the top of the page
+Quote Post
Tomplus
post 14.06.2019, 22:05:34
Post #2





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


A jak wygląda kod HTML?
Podglądałeś? Skoro to samo to dane muszą być takie same, albo id tagów HTML.

Go to the top of the page
+Quote Post
Nidan23
post 15.06.2019, 11:15:19
Post #3





Grupa: Zarejestrowani
Postów: 101
Pomógł: 2
Dołączył: 26.04.2019

Ostrzeżenie: (10%)
X----


Cytat(Tomplus @ 14.06.2019, 23:05:34 ) *
A jak wygląda kod HTML?
Podglądałeś? Skoro to samo to dane muszą być takie same, albo id tagów HTML.



No tym określam id elementu:

  1. <div style="overflow-x:auto" >
  2. <?php $sql = "SELECT miejsce from klan";
  3.  
  4. $conn->query('SET NAMES utf8');
  5. $conn->query('SET CHARACTER_SET utf8_unicode_ci');
  6. $result = $conn->query($sql);
  7.  
  8. if ($result->num_rows > 0) {
  9. while($row = $result->fetch_assoc()) {
  10. echo '<div id="'.$row["miejsce"].'" style="width: 100%; height: 100%;"></div>';}}?>
  11. </div>




A to odpowiada za rysowanie wykresu w elemencie o danym id, wszystko miałeś u góry...


  1. <?php $sql = "SELECT miejsce from klan";
  2.  
  3.  
  4.  
  5. $conn->query('SET NAMES utf8');
  6.  
  7. $conn->query('SET CHARACTER_SET utf8_unicode_ci');
  8.  
  9. $result = $conn->query($sql);
  10.  
  11.  
  12.  
  13. if ($result->num_rows > 0) {
  14.  
  15. while($row = $result->fetch_assoc()) {
  16.  
  17. echo 'var chart = new google.visualization.ComboChart(document.getElementById("'.$row["miejsce"].'")); chart.draw(data,options);'; } } ?>
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 23:25