Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySql Datenbank mit Google Chart api LineChart kommunizieren lassen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] MySql Datenbank mit Google Chart api LineChart kommunizieren lassen

    Hallo,


    ich versuche Daten von CPU´s in einem LineChart anzeigen zu lassen.
    Die benötigten Daten bekomme ich dann aus dem array wie folgt:

    Array
    (
    [0] => Array
    (
    [cpu_name] => Atom
    [power] => 1600
    [price] => 10
    )

    [1] => Array
    (
    [cpu_name] => Atom
    [power] => 1700
    [price] => 12
    )

    [2] => Array
    (
    [cpu_name] => Atom
    [power] => 1800
    [price] => 14
    )

    [3] => Array
    (
    [cpu_name] => Atom
    [power] => 1900
    [price] => 16
    )

    [4] => Array
    (
    [cpu_name] => Atom
    [power] => 2000
    [price] => 18
    )

    [5] => Array
    (
    [cpu_name] => Atom
    [power] => 2100
    [price] => 19
    )

    )
    Das problem ist das ich nicht weis wie ich dieses Array dann in den Chart bekomme, da dieses wie Folgt aufgebaut ist:

    ['Leistung', 'I7', 'I5' , 'I3', 'Atom'],
    ['1000', null, null, null, 50],
    ['2500', 140, 120 , 110, null],
    ['2700', 150, 130 , 120, null],
    ['2900', 160, 140 , 130, null],
    ['3100', 170, 150 , null, null]


    Ich möchte nicht nur ein CPU anzeigen Lassen sonsern ja nach dem welches das auf der Webseite angeklickt wird.

    Die Datenbank abfrage funktioniert soweit.

    Das Problem ist das ich die Daten als Zeile bekomme, aber das Chart die Daten als Spalte braucht.

    Wenn ich die Daten über json_encode() convertiere bekomme ich :

    [{"cpu_name":"Alte PII PIII etc.","power":"200","price":"1"},
    {"cpu_name":"Alte PII PIII etc.","power":"300","price":"1"},
    {"cpu_name":"Alte PII PIII etc.","power":"400","price":"1"},
    {"cpu_name":"Alte PII PIII etc.","power":"500","price":"1"},
    {"cpu_name":"Alte PII PIII etc.","power":"600","price":"1"},{"cpu_name":"Atom ","power":"1600","price":"10"},{"cpu_name":"Atom", "power":"1700","price":"12"},{"cpu_name":"Atom","p ower":"1800","price":"14"},{"cpu_name":"Atom","pow er":"1900","price":"16"},{"cpu_name":"Atom","power ":"2000","price":"18"},{"cpu_name":"Atom","power": "2100","price":"19"}]

    also auch nicht richtig.

    Wie bekomme ich die Daten in das richtige Format?
    Dann folgt das nächste problem. Wie kann ich es so ausgeben das wenn es einen CPU in einem Takt nicht gibt null drin steht.

    richtig währe wie folgt:

    ['Leistung', 'I7', I5' , 'I3', 'Atom'],
    ['1000', null, null, null, 50],
    ['2500', 140, 120 , 110, null],
    ['2700', 150, 130 , 120, null],
    ['2900', 160, 140 , 130, null],
    ['3100', 170, 150 , null, null]

    Weiter ist zu beachten das das Ganze auch weiter ausbar sein muss. Wenn wieder auf einen anderen cpu geklicht wird sollen seine Daten in der nächsten spalte erscheinen.

    Ich hoffe mir kann geholfen werde, danke im vorraus.
    Gruß Stiki

  • #2
    Von zeilenorientiert in spaltenorientiert umzustellen nennt man Transformation. Zu diesem Problem lassen sich via Google einige Algorithmen finden (oder auch selber entwickeln, etwa 3 for und du hast das).

    Das nicht null steht sondern 0 ist nur eine Frage der Typkonvertierung.
    [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

    Kommentar


    • #3
      Ich finde nichts das mir da helfen kann oder Google ist heute einfach nicht mein freund -.-

      Ich versuche es nun indem ich aus dem einem array mehrere andere array´s erstelle und diese dann ausgebe.

      Nun stehe ich aber vor dem Problem das ich zählen muss wie oft den ein CPU vorkommt um die richtigen daten in das array zu packen. wenn nur ein cpu gewählt ist dann kann ich mit dem row_count meines sql abfage arbeiten.

      Der zweg der sache ist aber das mehrere ausgewählt werden um diese zu vergleichen. nun habe ich versucht die inhalte mit array_count_values zu zählen. es kommt dann zum fehler:

      Warning: array_count_values() [function.array-count-values]: Can only count STRING and INTEGER values!

      gibt es andere möglichkeiten zu zählen wie oft ein cpu name zb atom in einem Array steckt?



      Oder kann mir jemand einen tipp geben wo ich so einen Algorithmus finde?

      Kommentar


      • #4
        Ich habe nun die abfrage an sich geändert, sieht ein wenig besser aus.

        Jedoch hat sich einiges geändert und ich bin somit in diesem bereich nicht mehr richtig ich schreibe einen neuen beitrag mit den aktuellen daten im richtig bereich.


        Danke

        Kommentar


        • #5
          Zitat von stiki Beitrag anzeigen
          gibt es andere möglichkeiten zu zählen wie oft ein cpu name zb atom in einem Array steckt?
          http://de3.php.net/manual/en/function.array-map.php
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar

          Lädt...
          X