Du bist nicht angemeldet.

1

03.05.2015, 13:11

[Erledigt] MySQL Abfrage für Joomla Modul

Moin, ich hab da mal wieder eine Verständnisfrage.

In meinem CMS, hier Joomla 3.4, habe ich eine Modul-Komponente mit der ich eine MySQL Datenbank "anzapfe" und die Werte in diversen Formaten (Tabellen, Charts usw.) ausgeben kann.

Aktuell wollte ich mir eine Pie-Chart erstellen. Hierzu habe ich folgende Abfrage unter MyPHP ausgeführt.

Quellcode

1
2
3
SELECT System, COUNT( System ) AS Anzahl der Tests, System
FROM MEINE TABELLE
GROUP BY System


Das Ergebnis passt soweit. Wenn ich in dem Modul diese Abfrage auszuführen, erscheinen die Daten in der Tabelle korrekt, leider jedoch nicht in der Pie-Chart Form. Meine Frage daher, ist die Abfrage von mir korrekt formuliert, oder müssen diese Abfragedaten zwischengespeichert werden?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »DerSchlachter« (07.05.2015, 17:45)


henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

2

03.05.2015, 13:55

Mir sind im Moment noch zwei Dinge unklar:

1. Zwei mal »System«
Wieso fragt Du die Spalte System in der Tabelle MEINE TABELLE zwei mal ab? Einmal müsste doch reichen.

2. COUNT-Abfrage
Meinem Verständnis nach müsstest Du eigentlich schreiben COUNT( * ).

Ingesamt sähe die Abfrage meinen Verständnis nach eher so aus:

Quellcode

1
2
3
SELECT System, COUNT( * ) AS Anzahl der Tests
FROM MEINE TABELLE
GROUP BY System


Bzw. wenn man die MySQL-Syntax 100%ig ernst nimmt sogar eher so:

Quellcode

1
2
3
SELECT System, COUNT( * ) AS `Anzahl der Tests`
FROM `MEINE TABELLE`
GROUP BY System


;)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »henrikf« (03.05.2015, 14:07)


3

03.05.2015, 14:28

Hmm, ich bin ja noch recht Newbie was MySql angeht, ggf. stelle ich mir unter der Abfrage auch etwas anderes vor. Hier mal meine Idee zum nachverfolgen.

In einer meiner Tabellen habe ich eine Spalte mit System deklariert, diese möchte ich einfach auszählen lassen. Also nur die Anzhal wie oft das System aufgeführt worden ist.
Bsp.:

PlayStation 2 = 800
PlayStation 3 = 1200
Wii U = 2

Diese Daten möchte ich dann in dem PIE-Chart abbilden.

Gehe ich das mit der Abfrage korrekt an?

P.S.: Danke schon einmal für die Korrektur meine Abfrage, dass kann ich nachvollziehen, dass ich das doppelt abgefragt habe!

Edit: Ich habe noch ein Bild aus Excel angehangen.
»DerSchlachter« hat folgendes Bild angehängt:
  • chart.jpg

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

4

03.05.2015, 15:00

Genau das würde die von mir formulierte Abfrage erledigen. Ich habe das mit mehreren Datenbank-Tabellen aus PrestaShop, Magento und WordPress/WooCommerce ausprobiert es passiert genau das, was Du haben möchtest. :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

5

03.05.2015, 21:07

Ok, das ist schon einmal super, dann,liegt es wohl am Joomla Modul. Da werde ich die Tage mich mal einlesen :)

6

04.05.2015, 18:29

Deine Abfrage habe ich nun erfolgreich in das Modul eingebaut. Werde nun die Bezeichnungen der Systeme noch harmonisieren und mich dann noch mit weiteren Statistikabfragen beschäftigen.

Falls Du noch ein wenig Zeit für folgende Frage aufbringen würdest, wäre ich Dir dankbar:

Ich möchte die von Dir aufgezeigte Abfrage für weitere Abfragen spezifizieren. Das heißt, ich möchte die Abfrage ergänzen um die Spalte Zeitschrift. Hier sind derzeit 3 Werte hinterlegt, MAN!AC, M!GAMES und Video Games.

Bsp. ich möchte gerne Wissen wieviele Tests die Video Games für welche Systeme verfasst hat. Ist das möglich?

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

7

04.05.2015, 19:16

Ich bin im Moment ein wenig eingebunden ... aber das ist glaube ich auch nicht so schwer. Lass mich mal in mich gehen ... ich melde mich wieder. ^^
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

8

04.05.2015, 20:56

Keine Eile damit, hab noch genug zu tüfteln und erfassen ;)

9

07.05.2015, 17:45

Ich hab es hinbekommen! Anbei die Lösung und das Ergebnis als Link

Quellcode

1
2
SELECT System, Zeitschrift, COUNT( * ) AS 'Anzahl der Tests' FROM `csv_table` WHERE Zeitschrift = 'M!Games' OR Zeitschrift= 'MAN!AC'
GROUP BY System