Seite 3 von 3

Verfasst: 12.12.2002 08:46
von Pyramide
Das count() musst du in einer Separaten Abfrage ohne WHERE ausführen. Das steht zwar schon in der Fehlermeldung
Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
aber scheinbar muss man´s dir nochmal extra sagen.

Verfasst: 12.12.2002 16:08
von Jason
Jo nur dann werden alle in der tabelle vorhandenen Datensätze zusammengezählt aber es dürfen ja nur die zusammengezählt werden die zu der Buddyliste des jeweiligen Users gehören also denke ich mal wirds wohl ohne WHERE net gehen oder steh ich grad mal wieder auffm schlauch?Ausserdem funzt es ja in der memberlist auch mit WHERE siehe hier:

Code: Alles auswählen

$sql = "SELECT count(*) AS total
      FROM " . USERS_TABLE . "
      WHERE user_id <> " . ANONYMOUS . " $sql_filter";
Grüße Jason

Verfasst: 12.12.2002 16:47
von Pyramide
Damit meine ich keine Anweisungen, die die Anzahl weiter als nötig verringern. Also wenn z.B. 50 in der Liste sind und 15 pro Seite angezeigt werden sollen, musst du die numrows Abfrage so bauen, daß dabei 50 rauskommt.
Wichtig ist nur daß du das nicht in die Hauptabfrage mit einbaust, sondern eine zweite startest.

Verfasst: 12.12.2002 17:12
von Jason
Hi,
ich habe es jetzt hinbekommen die pagination funzt nur wird unten auf der Seite jetzt diese fehlermeldung angezeigt:
Fatal error: Cannot break/continue 1 level in /is/htdocs/board/buddylist.php on line 402
Ich weiss nicht ob es damit was zu tun hat aber die Links zu den Weiteren seiten sehen so aus: http://www.domain.de/buddylist.php?&start=0

Müsste es net so sein http://www.domain.de/buddylist.php?start=0 ??

Hier nochmal das aktuelle script: buddylist.php

Grüße Jason

Verfasst: 12.12.2002 17:19
von Pyramide
Ich weiß nicht warum die Meldung angezeigt wird, aber da das break an der Stelle sowieso sinnlos ist, nimm´s doch einfach raus.

Verfasst: 12.12.2002 18:20
von Jason
Danke die fehlermeldung ist jetzt weg aber mir ist da noch ein problem aufgefallen mit dem SQL Query in dem jetzt das Limit eingebaut ist wird auch abgefragt welche der Buddys Online bzw. Offline sind:
$sql = 'SELECT b.buddy_name, b.buddy_id, b.user_id, b.added,
u.user_msnm, u.user_yim, u.user_aim, u.user_email, u.user_viewemail, u.user_icq, u.user_website,
IF(s.session_user_id <> "","true","false") AS is_online
FROM ' . BUDDYLIST_TABLE . ' b, ' . USERS_TABLE . ' u
LEFT OUTER JOIN '.SESSIONS_TABLE.' s ON b.buddy_id = s.session_user_id AND s.session_time >= '.( time() - 300 ) . '
WHERE b.buddy_id = u.user_id AND b.user_id = ' . $user_id . '
ORDER BY b.added
LIMIT ' . $start . ', ' . $board_config['topics_per_page'];
Jetzt werden unter Online/Offline nur noch die angezeigt die auch auf der jeweiligen Seite sind kann man das irgendwie hinbekommen das unter Online/Offline wieder alle in der jeweiligen Buddyliste vorhandenen Benutzer angezeigt werden?

Hier wieder das aktuelle script: buddylist.php

Hoffe mal es hat jemand verstanden was ich meine und kann mir helfen das hinzubekommen :)

Grüße Jason