MySQL Abfrage - COUNT, GROUP
BastianB
- php
Grüß Gott zusammen.
ich komme bei einer Datenbankabfrage (MySQL) nicht weiter und hoffe auf eure Hilfe.
Ich frage Schwierigkeitsstufen ("anspruch", 1-5) bei Wanderwegen aus meiner DB ab. Nun kann ich mit mit der unteren Abfrage ausgeben, wie viele Wanderwege es in den einzelnen Schwierigkeitsstufen in Bayern gibt.
Die gesamten Stufe 4 Wege gebe ich wie folgt aus
echo $all['4'];
//gesamtanzahl abfragen
$query="SELECT anspruch bereich, COUNT(anspruch) anzahl FROM wanderwege WHERE bundesland = '".mysql_real_escape_string('Bayern')."' GROUP BY anspruch ";
$result=mysql_query($query,$db);
while ($row = mysql_fetch_array($result))
{
//Alle Kunden
$all[$row['bereich']] = $row['anzahl'];
}
Weiterhin Frage ich die Regionen ab, die zu jedem Wanderweg hinterlegt sind (max 3).
$query_a = "(SELECT region alleregionen from wanderwege WHERE bundesland = '".mysql_real_escape_string('Bayern')."')
UNION
(SELECT region_2 alleregionen from wanderwege WHERE bundesland = '".mysql_real_escape_string('Bayern')."')
UNION
(SELECT region_3 alleregionen from wanderwege WHERE bundesland = '".mysql_real_escape_string('Bayern')."')
ORDER BY alleregionen";
$select_a = mysql_query($query_a);
Ich würde nun gerne ausgeben können, wie viele Wanderwege mit Schwierigkeitsstufe z.B. 4 in einer bestimmten Region vorhanden sind (z.B. Oberbayern).
Hoffe mich versteht jemand und kann mir helfen.
Basti
Hallo,
ich komme bei einer Datenbankabfrage (MySQL) nicht weiter
scheint mir anhand der folgenden Beschreibung auch so.
Wieso stellst du die Frage dann im Themengebiet PHP ein??
Hoffe mich versteht jemand und kann mir helfen.
Im Prinzip gern - aber in der Thematik bin ich selbst nicht allzu sattelfest.
Ciao,
Martin
Hi,
Weiterhin Frage ich die Regionen ab, die zu jedem Wanderweg hinterlegt sind (max 3).
$query_a = "(SELECT region alleregionen from wanderwege WHERE bundesland = '".mysql_real_escape_string('Bayern')."')
UNION
(SELECT region_2 alleregionen from wanderwege WHERE bundesland = '".mysql_real_escape_string('Bayern')."')
UNION
(SELECT region_3 alleregionen from wanderwege WHERE bundesland = '".mysql_real_escape_string('Bayern')."')
ORDER BY alleregionen";
$select_a = mysql_query($query_a);
Die Queries deuten auf ein fehlerhaftes Datenmodell hin.
Warum sind die Regionen in einzelnen Spalten hinterlegt?
Hinterlege diese Information in \*einer\* Spalte region, die dann mit einem entsprechenden Kennzeichen gefüllt wird.
Hängen an der Region noch weitere Informationen dran, lagere diese in eine weitere Tabelle aus.
Kurzum: Beschäftige dich mit dem Stichwort Normalisierung.
MfG ChrisB
--
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
Hallo und Danke erstmal,
leider kann die Datenbank nicht geändert werden.
Freue mich trotzdem über Hilfe.
Hi,
leider kann die Datenbank nicht geändert werden.
Hier melde ich erst mal die üblichen Zweifel an, ob dieses „kann nicht“ nicht vielleicht nur ein „will nicht/keine Lust drauf/mir zu aufwendig“ ist.
Mit einer Datenstruktur, die der Aufgabe nicht gerecht wird, tust du dir auf Dauer keinen Gefallen.
Ich würde nun gerne ausgeben können, wie viele Wanderwege mit Schwierigkeitsstufe z.B. 4 in einer bestimmten Region vorhanden sind (z.B. Oberbayern).
Bisher können wir nur erkennen, dass deine Datenstruktur höchstwahrscheinlich Murks ist.
Wie sie tatsächlich aussieht, hast du uns aber verschwiegen.
Was ist also erst mal das Kriterium dafür, dass ein Wanderweg in einer bestimmten Region liegt?
MfG ChrisB