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
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
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
Grüße Jason