pager_query() und GROUP BY()
am 01.12.2010 - 00:15 Uhr in
Hi,
ich wollte pager_query() mit folgendem query ausführen:
<?php
pager_query("SELECT SUM(gf.transaction) AS transactionTotal, u.name
FROM {gamble_fortune} gf, {users} u
DISTINCT(u.uid) = gf.uid
GROUP BY(gf.uid)
ORDER BY transactionTotal DESC, u.name ASC",
10
);
?>Leider steht in der API folgendes:
Unfortunately, the rewrite rule does not always work as intended for queries that already have a "COUNT(*)" or a "GROUP BY" clause, and possibly for other complex queries. In those cases, you can optionally pass a query that will be used to count the records.
For example, if you want to page the query "SELECT COUNT(*), TYPE FROM node GROUP BY TYPE", pager_query() would invoke the incorrect query "SELECT COUNT(*) FROM node GROUP BY TYPE". So instead, you should pass "SELECT COUNT(DISTINCT(TYPE)) FROM node" as the optional $count_query parameter.
Jetzt versuche ich die ganze Zeit das query umzubauen, aber komm einfach zu keinem sinnvollen Ergebnis. Mitterweile mehr try and error... Kann mir hier jemand helfen?
EDIT: Mittlerweile macht "nur" noch das SUM() Probleme.
<?php
$sql = "SELECT DISTINCT(u.uid), u.name, g.transaction AS transactionTotal
FROM {users} u, {gamble_fortune} g
WHERE u.uid = g.uid
ORDER BY transactionTotal DESC, u.name ASC";
$sql_count = "SELECT COUNT(DISTINCT(u.uid)) FROM {users} u, {gamble_fortune} g";
$result = pager_query($sql, $pager_num, 0, $sql_count);
?>Einfach SUM(g.transaction) führt dazu, dass nur noch ein User mit der Summer aller g.transaction-Werte auftaucht. Ohne SUM() werden alle Werte aufgeführt.
- Anmelden oder Registrieren um Kommentare zu schreiben

Neue Kommentare
vor 2 Wochen 4 Tagen
vor 2 Wochen 4 Tagen
vor 2 Wochen 5 Tagen
vor 3 Wochen 3 Tagen
vor 3 Wochen 3 Tagen
vor 4 Wochen 12 Stunden
vor 4 Wochen 12 Stunden
vor 4 Wochen 12 Stunden
vor 6 Wochen 4 Tagen
vor 6 Wochen 4 Tagen