
| Autor |
Nachricht |
JasonLucas
phpBB2.de User


Anmeldungsdatum: 01.09.2002
Beiträge: 150
|
Verfasst am:
Mo 09 Dez, 2002 20:57 |
  |
Hi,
ich habe ein kleines Problem mit einem SQL Query:
| Code: |
$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 . '
ORDER BY b.added
LIMIT $start, ' . $board_config['topics_per_page']; |
Ich bekomme immer diese fehlermeldung:
| Code: |
Error getting buddy listing
DEBUG MODE
SQL Error : 1064 You have an error in your SQL syntax near '$start, 50' at line 8
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 phpbb_buddylist b, phpbb_users u LEFT OUTER JOIN phpbb_sessions s ON b.buddy_id = s.session_user_id AND s.session_time >= 1039376827 WHERE b.buddy_id = u.user_id AND b.user_id = 2 ORDER BY b.added LIMIT $start, 50
Line : 227
File : /is/htdocs/board/buddylist.php |
Woran kann das liegen??
Ich bin für jeden tip dankbar!!
Grüße Jason |
|
|
   |
 |
Google
|
Verfasst am:
|
 |
|
|
 |
TerraTux
Support Team Member


Anmeldungsdatum: 02.08.2002
Beiträge: 1026
Wohnort: Delitzsch
|
Verfasst am:
Di 10 Dez, 2002 10:29 |
  |
Versuch es mal damit:
| Code: |
$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 ."'
ORDER BY b.added LIMIT $start, '". $board_config['topics_per_page'] ."'";
|
Weiterhin, ist $user_id der Inhaber der Buddylist selber oder? Also DU für DEINE Buddylist? Muß es dann nicht $userdata['user_id'] sein ??
Gruß
Anti M&M |
_________________ software is like sex, it's better if it's free
Kein Support per PM || EMail || Messenger |
|
     |
 |
JasonLucas
phpBB2.de User


Anmeldungsdatum: 01.09.2002
Beiträge: 150
|
Verfasst am:
Di 10 Dez, 2002 17:44 |
  |
Danke aber habs gestern abend noch hinbekommen (es fehlten bei $start die Single Quotes) diese fehlermeldung ist jetzt weg aber dafür kommt nu ne andere
| Zitat: |
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, IF(s.session_user_id <> "","true","false") AS is_online, count(*) AS total FROM phpbb_buddylist b, phpbb_users u LEFT OUTER JOIN phpbb_sessions s ON b.buddy_id = s.session_user_id AND s.session_time >= 1039460483 WHERE b.buddy_id = u.user_id AND b.user_id = 2 ORDER BY b.added LIMIT 0, 50
Line : 225
File : /is/htdocs/board/buddylist.php |
Das Query sieht jetzt so aus:
| Code: |
$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 . '
ORDER BY b.added
LIMIT ' . $start . ', ' . $board_config['topics_per_page']; |
Bin weiterhin für tipps dankbar
Grüße Jason
BTW: @ Anti M&M das $user_data['user_id'] brauchte ich schon mehrmals im script daher hab ichs als $user definiert  |
|
|
   |
 |
TerraTux
Support Team Member


Anmeldungsdatum: 02.08.2002
Beiträge: 1026
Wohnort: Delitzsch
|
Verfasst am:
Di 10 Dez, 2002 18:07 |
  |
aehm...erstmal zu $userdata, sobald du das Board betritts, wird $userdata mit DEINEN Daten gefüllt (im eingeloggten Zustand)
Beschreiben solltest Du dieses Array nicht. Deswegen meinte ich das vorhin, du kannst als o in JEDEM Script, von ÜBERALL benutzerspezifische Daten abrufen, so auch die Buddylist des Besuchers. In dem Falle auch kein Problem da MEINE Buddylist auch NUR für MICH ersichtlich ist.
Ich wundere mich eh über die meterlange SQL-Query...
meine ist:
| Code: |
| SELECT b.buddy_id, b.user_id, u.user_id, u.username FROM ". BUDDY_TABLE ." b, ". USER_TABLE ." u WHERE b.buddy_id = u.user_id AND u.user_id = '". $userdata['user_id'] ."' ORDER BY u.username ASC"; |
Der Fehler den Du jetzt hast, kommt sicherlich daher das die USER_TABLE bereits SQL-Seitig gruppiert ist, und Du versuchst die Daten neugruppiert abzurufen.
Vielleicht hilft es wenn Du:
| Code: |
, count(*) AS total
|
mal komplett wegläßt, die Anzahl bekommst Du auch mit mysql_num_rows() herraus.
Gruß |
_________________ software is like sex, it's better if it's free
Kein Support per PM || EMail || Messenger |
|
     |
 |
JasonLucas
phpBB2.de User


Anmeldungsdatum: 01.09.2002
Beiträge: 150
|
Verfasst am:
Di 10 Dez, 2002 19:49 |
  |
| Anti M&M hat folgendes geschrieben: |
Ich wundere mich eh über die meterlange SQL-Query...
meine ist:
| Code: |
| SELECT b.buddy_id, b.user_id, u.user_id, u.username FROM ". BUDDY_TABLE ." b, ". USER_TABLE ." u WHERE b.buddy_id = u.user_id AND u.user_id = '". $userdata['user_id'] ."' ORDER BY u.username ASC"; |
|
Ich nehme mal an das liegt daran das ich mir ( Mit Hilfe von Fabro ) selbst eine Buddyliste zusammengebastelt habe
| Zitat: |
Der Fehler den Du jetzt hast, kommt sicherlich daher das die USER_TABLE bereits SQL-Seitig gruppiert ist, und Du versuchst die Daten neugruppiert abzurufen.
Vielleicht hilft es wenn Du:
| Code: |
, count(*) AS total
|
mal komplett wegläßt, die Anzahl bekommst Du auch mit mysql_num_rows() herraus. |
Ich nehm an du meinst sql_numrows() werds mal probieren wenns net klappt meld ich mich nochmal hier wenn ich darf
Grüße Jason |
|
|
   |
 |
TerraTux
Support Team Member


Anmeldungsdatum: 02.08.2002
Beiträge: 1026
Wohnort: Delitzsch
|
Verfasst am:
Di 10 Dez, 2002 20:47 |
  |
1. Quote) ich habe mein Portal selber geschrieben, INKL. einer Buddylist (habe lediglich die Sessionverwaltung, die EmailKlasse, und das Templatesystem übernommen)
2.) mysql_num_rows() ist die originale PHP-Syntax
sql_numrows ist eine function aus der zu phpBB gehörenden DB-Class, die nutz ich nicht, von daher kenn ich auch nicht dessen Funktionen...
Genau...probieren geht über studieren *g*
Gruß,
Anti M&M |
_________________ software is like sex, it's better if it's free
Kein Support per PM || EMail || Messenger |
|
     |
 |
|
|
|
|
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
|