Daten in Rangliste - Ich bin's wieder ;)
Oli
- php
0 Rouven0 wahsaga0 _King Lully0 Ilja
Hi, war jetzt länger nicht da und habe es heute nochmal versucht, zu verstehen:
Habe es jetzt so gemacht:
[quote]"SELECT Nr, sum(Punkte) FROM ((SELECT (COUNT(*) * 3) as Punkte, a as Nr FROM haupttabelle GROUP BY Nr) UNION (SELECT (COUNT(*) * 10) as Punkte, b as Nr FROM haupttabelle GROUP BY Nr) AS subselect GROUP BY Nr ORDER BY Nr"[/quote]
Und es kommt jedes mal bei
[quote]while($daten = mysql_fetch_object($resultset))
(
echo $daten->Nr; echo "---"; echo $daten->Punkte; echo "<br>";
)[/quote]
die Fehlermeldung "supplied argument is not a valid MySQL result resource"... Was habe ich noch falsch gemacht? Die beiden Abfragen aus der Union funktionieren einzeln einwandfrei... Was ist noch falsch?
Danke
Oli
Hello,
die Fehlermeldung "supplied argument is not a valid MySQL result resource"... Was habe ich noch falsch gemacht? Die beiden Abfragen aus der Union funktionieren einzeln einwandfrei... Was ist noch falsch?
...und was bringt die Gesamtabfrage z.B. per PHPMyAdmin auf die Datenbank losgelassen? Wahrscheinlich einen Fehler, den du in deiner Anwendung unterdrückst, sonst wäre das Ergebnis wohl eine Resource...
MfG
Rouven
hi,
die Fehlermeldung "supplied argument is not a valid MySQL result resource"... Was habe ich noch falsch gemacht?
Dich micht mal ansatzweise um Fehlerbehandlung gekümmert.
Die beiden Abfragen aus der Union funktionieren einzeln einwandfrei... Was ist noch falsch?
Nutze mysql_error(), um freundlich bei der Datenbank nachzufragen.
gruß,
wahsaga
SELECT
Nr,
sum(Punkte)
FROM
(
(
SELECT
(COUNT(*) * 3) as Punkte,
a as Nr
FROM
haupttabelle
GROUP BY
Nr
)
UNION
(
SELECT
(COUNT(*) * 10) as Punkte,
b as Nr
FROM
haupttabelle
GROUP BY
Nr
) AS subselect
GROUP BY
Nr
ORDER BY
Nr
1.) Da fehlt doch eine schliessende Klammer.
2.) Immer nur den SQL-Code posten
3.) missfällt mir UNION ( SELECT
4.) alles schön in Deinem Query-Tool selbst testen
5.) (haben wir nicht so viel Zeit und müssen weg, aber wir bleiben am Ball...)
SELECT
Nr,
sum(Punkte)
FROM
(
(
SELECT
(COUNT() * 3) as Punkte,
a as Nr
FROM
haupttabelle
GROUP BY
Nr
)
UNION
(
SELECT
(COUNT() * 10) as Punkte,
b as Nr
FROM
haupttabelle
GROUP BY
Nr
) AS subselect
GROUP BY
Nr
ORDER BY
Nr
Da wir diesen schwierigen Patienten (gemeint ist die Anforderung) schon eine ganze Weile pflegen (relativ erfolglos ;), noch ein paar Anmerkungen aus unserem Gedächtnis zur Anforderungslage:
Du gehst - so meine Erinnerung - auf ein und dieselbe Tabelle um an Hand zweier Regeln Punkte zu vergeben, die addiert werden sollen und letztlich absteigend sortiert eine Rangliste ergeben sollen.
Deine hier vorgestellte Abfrage ist da schon ganz OK, Du bildest die Vereinigungsmenge aus den beiden Listen mit den "Gummipunkten" und fragst diese ab. Wichtig natürlich die korrekte Syntax. Diese bitte mit einem Dir hoffentlich z.V. stehenden Abfragetool testen und \_erst\_dann\_ bspw. in PHP implementieren.
Wenn wir uns nicht täuschen bist Du aber ganz nah an der Lösung.
yo,
die Fehlermeldung "supplied argument is not a valid MySQL result resource"... Was habe ich noch falsch gemacht? Die beiden Abfragen aus der Union funktionieren einzeln einwandfrei... Was ist noch falsch?
ich tippe auf das AS subselect, lass da das AS mal weg und schreibe nur subselect.
Ilja
die Fehlermeldung "supplied argument is not a valid MySQL result resource"... Was habe ich noch falsch gemacht? Die beiden Abfragen aus der Union funktionieren einzeln einwandfrei... Was ist noch falsch?
ich tippe auf das AS subselect, lass da das AS mal weg und schreibe nur subselect.
Der Syntaxfehler hat u.a. mit der Klammerung zu tun und dem "SELECT ( UNION". Der Name für die temporäre Vereinigungsmenge müsste OK sein.