Seite 2 von 3

Verfasst: 09.12.2002 20:14
von Jensemann
Hi

Deine query ist fehlerhaft, sag mal was du damit machen willst, ich glaub dann kann ich besser helfen ...

Mfg
Jens

Verfasst: 10.12.2002 00:22
von Jason
Wie gesagt ist eine Buddyliste mit dem Query lese ich die Usernamen/id und Online Status aus den tabellen phpbb_buddylist/phpbb_users/phpbb_sessions aus!Oder was meinst du damit,was ich mit dem Query machen will?

Grüße Jason

Verfasst: 10.12.2002 17:53
von Jason
Also ich habe gerade rausgefunden das GROUP BY ...whatever fehlt!

Wenn ich das Query so abänder:
$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, count(*) AS total
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 . '
GROUP BY b.buddy_name
ORDER BY b.added
LIMIT ' . $start . ', ' . $board_config['topics_per_page'];
ist zwar die fehlermeldung weg aber jetzt wird nur noch 1 User in der Buddyliste angezeigt obwohl 12 da sind :o

Bin für jede weitere hilfe dankbar!!

Grüße Jason

Verfasst: 10.12.2002 18:01
von itst
Schmeiss den ganzen Count- und Group-Quatsch raus und benutz die Funktion mysql_num_rows().

Verfasst: 10.12.2002 18:54
von JasonLucas
Was ist mysql_num_rows()?Ist das dasselbe wie sql_numrows()?

Grüße Jason

BTW: Sorry das ich als Gast schreibe aber der Login funzt net :(

Verfasst: 10.12.2002 19:08
von Jensemann
JasonLucas hat geschrieben:Was ist mysql_num_rows()?Ist das dasselbe wie sql_numrows()?
jepp

Verfasst: 10.12.2002 23:06
von Jason
Ok ich habs jetzt soweit hinbekommen das es ohne fehlermeldung läuft aber es werden jetzt immer die ersten 15 Benutzer angezeigt und untendrunter steht nur "Seite 1 von 1" und es sind keine Links zu den weiteren seiten vorhanden obwohl über 50 Benutzer in der Buddyliste sind ( Eingestellt habe ich im ACP 15 Themen pro Seite ) Nu versteh ich net das die Links zu den Seiten mit den restlichen Benutzern net angezeigt werden :cry:

Hier nochmal das aktuelle Script + Template:

php: buddylist.php

template: buddylist.tpl

Bin für weitere tipps echt dankbar :)

Grüße Jason

Verfasst: 11.12.2002 00:26
von Jensemann
du musst für numrows n extra query machen, da du so nur immer 15 ausliest, es muß aber logischerweise den totalen wert haben, also noch ein SELECT COUNT(*) ... query und den wert in $numrows packen.

Verfasst: 11.12.2002 12:41
von Jason
Jo nur wie soll die abfrage dann aussehen?Es müssen dann ja wie beim normalen Query nur zu dem jeweiligem User (Dem die Buddylist gehört) gehörenden Buddys ausgelesen werden!Ich habs mal so probiert:

Code: Alles auswählen

$sql = 'SELECT  b.buddy_name, b.buddy_id, b.user_id, b.added, count(*) AS total
                        FROM ' . BUDDYLIST_TABLE . ' b, ' . USERS_TABLE . ' u
                        WHERE b.buddy_id = u.user_id AND b.user_id = ' . $user_id . '
                        ORDER BY b.added';
                if ( !$result = $db->sql_query($sql) )
                {
                        message_die(GENERAL_ERROR, 'Error getting buddy listing for pagination', '', __LINE__, __FILE__, $sql);
                }
                $total_buddys = $db->sql_numrows($result);
Scheint aber net zu funzen da ich jetzt wieder diese fehlermeldung bekomme:
Error getting buddy listing for pagination

DEBUG MODE

SQL Error : 1140 Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

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, count(*) AS total FROM phpbb_buddylist b, phpbb_users u WHERE b.buddy_id = u.user_id AND b.user_id = 2 ORDER BY b.added

Line : 222
File : /is/htdocs/board/buddylist.php
Grüße Jason

Verfasst: 12.12.2002 00:54
von Jason
Sonst noch wer ne idee?Das muss doch irgendwie gehen :cry: :o

Grüße Jason