» »

Kako prikazati šumnike v grafih GoogleCharts če kličem podatke iz MySQL baze?

Kako prikazati šumnike v grafih GoogleCharts če kličem podatke iz MySQL baze?

SPTŠLowLife ::

Živjo, za projektno nalogo moram podatke iz MySQL tabele izpisati s pomočjo GoogleCharts grafov. Stvar praktično deluje, vse kar pa mi še dela probleme pa so šumniki, prikazani v grafih, saj mi namesto Č,Š,Ž izpiše le vprašaj (?). Ali mogoče ve kdo kako to popraviti? Na stackoverflowu sem poiskal že veliko "rešitev" a nobena ni rešila mojega problema.

Primer problema:
 Primer problema

Primer problema



Del kode, uporabljen za izpis:

  <?php
  $query = "SELECT idKategorija, sum(cenaStroska) as number FROM Stroski WHERE tip='Strosek' AND idUser='" . $id . "' GROUP BY idKategorija";
  $result = mysqli_query($connect, $query);
  ?>

           <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
           <script type="text/javascript">
           google.charts.load('current', {'packages':['corechart']});
           google.charts.setOnLoadCallback(drawChart);
           function drawChart()
           {
                var data = google.visualization.arrayToDataTable([
                          ['imeStroska', 'number'],
                          <?php
                          while($row = mysqli_fetch_array($result))
                          {

                              $najdi_kategorijo = "SELECT kategorija FROM kategorija WHERE id = {$row['idKategorija']}";
                              $result_kategorija = mysqli_query($connect, $najdi_kategorijo);
                              $row_kategorija = mysqli_fetch_array($result_kategorija,MYSQLI_ASSOC);
                              echo "['".$row_kategorija["kategorija"]."', ".$row["number"]."],";
                          }
                          ?>
                     ]);
                var options = {
                      title: 'Vsota stroškov glede na kategorijo',
                      //is3D:true,
                      pieHole: 0.4
                     };
                var chart = new google.visualization.PieChart(document.getElementById('piechart'));
                chart.draw(data, options);
           }
           </script>

Ziga Dolhar ::

Preveri, v kakšni kodni tabeli so shranjeni podatki v bazi, in katera kodna tabela je uporabljena pri prikazu podatkov v browserju (charset/encoding).
https://dolhar.si/

Miha 333 ::

RTFM?
All display text passed to the Chart API must be UTF-8 encoded and then URL-encoded.

https://developers.google.com/chart/ima...

SPTŠLowLife ::

Miha 333 je izjavil:

RTFM?
All display text passed to the Chart API must be UTF-8 encoded and then URL-encoded.

https://developers.google.com/chart/ima...


Se pravi bi moral ob vnosu v podatkovno bazo s funkcijo pregledati niz in tam, kjer so šumniki bi funkcija morala zamenjati šumnik z njegovo kodo, npr. namesto "è" bi funkcija v tabelo zapisala vrednost "%C3%A8".

Bi bilo tako pravilno?

Miha 333 ::

Ne, v bazi imaš kot je pač collation baze, npr. utf8_slovenian_ci. Ko tekst potegneš iz baze, preden ga podaš APIju, ga URL-encodaš.

Ena od teh funkcij bo verjetno ustrezna:
http://php.net/manual/en/function.urlen...
http://php.net/manual/en/function.rawur...

Zgodovina sprememb…

  • spremenilo: Miha 333 ()

SPTŠLowLife ::

Zdaj mi graf prikaže npr. "Pija%3Fa", če pa URL-encodam pri vnosu, se pravi je v tabeli vnešeno "Pija%3Fa", pa mi graf s pomočjo URL-decoda izpiše vprašaj namesto šumnika..


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Polnjenje tonerjev v LJ

Oddelek: Pomoč in nasveti
82111 (1859) Brane22
»

firefox/pdf

Oddelek: Programska oprema
71236 (1034) refaktor
»

Obnovitev starega računalnika (strani: 1 2 )

Oddelek: Strojna oprema
538352 (7385) Tomaž
»

GTX 560Ti "No signal" črn zaslon...

Oddelek: Pomoč in nasveti
182584 (2206) TOP
»

Katero grafično ....ti4200 ali r9500pro

Oddelek: Kaj kupiti
271639 (1346) MrX

Več podobnih tem