Tworzę za pomocą google chart wykresy korzystając z danych znajdujących się w bazie mysql. Niestety w tematyce php i mysql jestem można powiedzieć zielony i w większości przypadków improwizuję łącząc znalezione części kodu w internecie wink.gif

Napisałem jakiś kod, który teoretycznie działa i tworzy poprawnie wykresy, ale wydaje mi się, że jest on zbyt skomplikowany i pewnie to co chcę uzyskać da się zrobić o wiele prościej, bo obecnie, aby uzyskać taki wykres wykorzystuję prawie 40 linii kodu i 4 zapytania do bazy, więc jeśli biorąc pod uwagę optymalizację to ten kod chyba nie jest nejlepszy. Druga sprawa to to, że jeśli do bazy dodam nowy rekord z inną wartością niż Dubbing, Lektor etc. to wykres tego nie uwzględni i będę musiał dodać kolejne zapytanie ręcznie. Czy jest jakiś sposób, aby to zautomatyzować? I jak mogę zoptymalizować ten kod?

  1. <?php
  2. mysql_connect('localhost', 'root', '');
  3. mysql_query("SET NAMES utf8");
  4. mysql_select_db('webserv');
  5.  
  6. $query=mysql_query("SELECT COUNT(LANGUAGES) FROM movies WHERE LANGUAGES = 'Dubbing'") or die ("BLAD");
  7. for($i=0;$s1=mysql_fetch_array($query);$i++)
  8. {
  9. if (!empty($wers)) $wers.=',';
  10. $wers .= $s1['COUNT(LANGUAGES)'];
  11. if (!empty($wers2)) $wers2.='|';
  12. $wers2 .= $s1['COUNT(LANGUAGES)'];
  13. }
  14. $query=mysql_query("SELECT COUNT(LANGUAGES) FROM movies WHERE LANGUAGES = 'Film polski'") or die ("BLAD");
  15. for($i=0;$s1=mysql_fetch_array($query);$i++)
  16. {
  17. if (!empty($wers)) $wers.=',';
  18. $wers .= $s1['COUNT(LANGUAGES)'];
  19. if (!empty($wers2)) $wers2.='|';
  20. $wers2 .= $s1['COUNT(LANGUAGES)'];
  21. }
  22. $query=mysql_query("SELECT COUNT(LANGUAGES) FROM movies WHERE LANGUAGES = 'Lektor'") or die ("BLAD");
  23. for($i=0;$s1=mysql_fetch_array($query);$i++)
  24. {
  25. if (!empty($wers)) $wers.=',';
  26. $wers .= $s1['COUNT(LANGUAGES)'];
  27. if (!empty($wers2)) $wers2.='|';
  28. $wers2 .= $s1['COUNT(LANGUAGES)'];
  29. }
  30. $query=mysql_query("SELECT COUNT(LANGUAGES) FROM movies WHERE LANGUAGES = 'Napisy'") or die ("BLAD");
  31. for($i=0;$s1=mysql_fetch_array($query);$i++)
  32. {
  33. if (!empty($wers)) $wers.=',';
  34. $wers .= $s1['COUNT(LANGUAGES)'];
  35. if (!empty($wers2)) $wers2.='|';
  36. $wers2 .= $s1['COUNT(LANGUAGES)'];
  37. }
  38. echo "<img src=\"http://chart.apis.google.com/chart?cht=p&chs=345x260&chd=t:$wers&chl=Dubbing|Film polski|Lektor|Napisy&chtt=Wersja filmu&chdl=$wers2&chdlp=b|r&chf=bg,s,00000000\" />";
  39. ?>