Profil lässt sich nicht mehr anzeigen

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
skittles
Beiträge: 820
Registriert: So 04.Apr, 2004 01:07
Wohnort: Wien

Profil lässt sich nicht mehr anzeigen

Beitrag von skittles »

Could not read user informations

DEBUG MODE

SQL Error : 1064 Fehler in der Syntax bei 'BY bl_id = 6, bl_id = 5, bl_id = 4, bl_id = 3, bl_id = 2, bl_id ' in Zeile 27.

SELECT DISTINCT u.*, (CASE WHEN u.user_from_flag = 'blank.gif' THEN '' ELSE TRIM(LEADING ' ' FROM SUBSTRING(LPAD(u.user_from_flag, 25, ' '), 1, 21)) END) as user_flag, 1 as user_online_display, 1 as user_email_display, 1 as user_pm_display, 1 as user_www_display, 1 as user_messanger_display, 1 as user_real_display, (CASE WHEN i.buddy_ignore = 0 THEN 1 ELSE 0 END) as user_my_friend, (CASE WHEN i.buddy_ignore = 1 THEN 1 ELSE 0 END) as user_my_ignore, (CASE WHEN i.buddy_visible = 1 THEN 1 ELSE 0 END) as user_my_visible, (CASE WHEN b.buddy_ignore = 0 THEN 1 ELSE 0 END) as user_friend, (CASE WHEN b.buddy_ignore = 1 THEN 1 ELSE 0 END) as user_ignore, (CASE WHEN b.buddy_visible = 1 THEN 1 ELSE 0 END) as user_visible , (CASE WHEN i.buddy_ignore = 0 THEN 1 ELSE 0 END) as user_my_friend, (CASE WHEN (u.user_session_time >= 1082472475) AND (1 = 1) THEN 1 ELSE 0 END) as user_online, (CASE WHEN 1 = 1 THEN 1 ELSE 0 END) as user_pm, (CASE WHEN 1=1 THEN u.user_email ELSE '' END) as user_email_virt, (CASE WHEN 1=1 THEN u.user_icq ELSE '' END) as user_icq_virt, (CASE WHEN 1=1 THEN u.user_aim ELSE '' END) as user_aim_virt, (CASE WHEN 1=1 THEN u.user_yim ELSE '' END) as user_yim_virt, (CASE WHEN 1=1 THEN u.user_msnm ELSE '' END) as user_msnm_virt, (CASE WHEN 1=1 THEN u.user_regdate ELSE 0 END) as user_regdate_virt, (CASE WHEN 1=1 THEN u.user_lastvisit ELSE 0 END) as user_lastvisit_virt, (CASE WHEN 1=1 THEN u.user_posts ELSE 0 END) as user_posts_virt, (CASE WHEN (1 = 1) THEN ( COALESCE(sr.rank_title, SUBSTRING(MAX(CONCAT(LPAD(nr.rank_min,8,'0'), nr.rank_title)), 9)) ) ELSE '' END) as user_rank_title, (CASE WHEN 1=1 THEN u.user_timezone ELSE 0 END) as user_timezone_virt, (CASE WHEN 1=1 THEN u.user_lang ELSE '' END) as user_lang_virt, (CASE WHEN 1=1 THEN u.user_website ELSE '' END) as user_website_virt, (CASE WHEN 1=1 THEN u.user_realname ELSE '' END) as user_realname_virt, (CASE WHEN 1=1 THEN u.user_gender ELSE 0 END) as user_gender_virt, (CASE WHEN 1=1 THEN u.user_birthday ELSE '' END) as user_birthday_virt, (CASE WHEN 1=1 THEN u.user_from ELSE '' END) as user_from_virt, (CASE WHEN 1=1 THEN u.user_occ ELSE '' END) as user_occ_virt, (CASE WHEN 1=1 THEN u.user_interests ELSE '' END) as user_interests_virt, (CASE WHEN 1=1 THEN u.user_home_phone ELSE '' END) as user_home_phone_virt, (CASE WHEN 1=1 THEN u.user_home_fax ELSE '' END) as user_home_fax_virt, (CASE WHEN 1=1 THEN u.user_work_phone ELSE '' END) as user_work_phone_virt, (CASE WHEN 1=1 THEN u.user_work_fax ELSE '' END) as user_work_fax_virt, (CASE WHEN 1=1 THEN u.user_cellular ELSE '' END) as user_cellular_virt, (CASE WHEN 1=1 THEN u.user_pager ELSE '' END) as user_pager_virt FROM (((((phpbb_users as u LEFT JOIN phpbb_flags as f ON f.flag_image = u.user_from_flag) LEFT JOIN phpbb_buddy as b ON b.user_id=u.user_id AND b.buddy_id=2) LEFT JOIN phpbb_buddy as i ON i.user_id=2 AND i.buddy_id=u.user_id) LEFT JOIN phpbb_ranks as sr ON u.user_rank > 0 AND sr.rank_special = 1 AND u.user_rank = sr.rank_id) LEFT JOIN phpbb_ranks as nr ON u.user_rank = 0 AND nr.rank_special = 0 AND nr.rank_min <= u.user_posts) WHERE u.user_id <> -1 GROUP BY u.user_idORDER BY bl_id = 6, bl_id = 5, bl_id = 4, bl_id = 3, bl_id = 2, bl_id = 1 ORDER BY u.username ASC, u.username ASC
Line : 734
File : /home/.sites/126/site211/web/phpBB2plus/profilcp/profilcp_buddy.php
Diese FEhlermeldung bekomme ich angezeigt!
Kann mir jemand nen Tipp geben?

Der Code ist übrigens folgender code

Code: Alles auswählen

// read the number of row
	------> 734      if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not read user informations", '', __LINE__, __FILE__, $sql);
	$total_users = $db->sql_numrows($result);

	$sql .= " LIMIT $start, " . $board_config['topics_per_page'];
	if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not read user informations", '', __LINE__, __FILE__, $sql);

	$users = array();
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

GROUP BY u.user_idORDER BY bl
Hier ist in dem gesamten SQL-Statement zwischen "u.user_id" und "ORDER BY" kein Zwischenraum, sprich Leerzeichen.

Und nochwas zur Erklärung der Fehleranzeige von phpBB: Die angegebene Zeile ist bei SQL-Fehlern immer nur die Zeile mit der Funktion "message_die" im Script. Das fehlerhafte SQL-Statement ist in den Zeilen davor und da musst Du nochmal reinschauen und nach "ORDER BY" suchen. Es kann sein, daß dieses in einer neuen Zeile an die Variable $sql angehängt wird, dann entweder das in

Code: Alles auswählen

' ORDER BY'
oder in

Code: Alles auswählen

' '.$weitere_Variable
ändern.
Wenn Du nicht klar kommst, dann poste hier diese Zeilen, also ab $sql = " SELECT DISTINCT..." bis zur Zeile 734.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
skittles
Beiträge: 820
Registriert: So 04.Apr, 2004 01:07
Wohnort: Wien

Beitrag von skittles »

Also ich hab nun versucht das Problem zu lösen. Aber ich werde einfach nicht schlau. ALso ich zuerst mal nach u.user_id gesucht! keines gefunden wo es gleich ohne abstand vor dem Order steht!
Ich habe jedoch folgendes gefunden

Code: Alles auswählen

FROM (((((" . USERS_TABLE . " as u
				LEFT JOIN " . FLAG_TABLE . " as f ON f.flag_image = u.user_from_flag)
				LEFT JOIN " . BUDDYS_TABLE . " as b ON b.user_id = u.user_id AND b.buddy_id=$view_user_id)
				LEFT JOIN " . BUDDYS_TABLE . " as i ON i.user_id=$view_user_id AND i.buddy_id=u.user_id)
				LEFT JOIN " . RANKS_TABLE . " as sr ON u.user_rank > 0 AND sr.rank_special = 1 AND u.user_rank = sr.rank_id)
				LEFT JOIN " . RANKS_TABLE . " as nr ON u.user_rank = 0 AND nr.rank_special = 0 AND nr.rank_min <= u.user_posts)
da kommt es manchmal ohne und manchmal mit Abstand vor. Ich habs aber lieber gelassen, wer weiß, vielleicht mach ich sonst noch mehr falsch.

Ich wäre froh wenn du dir die besagten Zeilen ansehen könntest, weil ich kenn mich leider echt noch zuwenig aus.
Also die Zeilen wären folgende:

Code: Alles auswählen

$sql = "SELECT DISTINCT u.*, 
					$sql_user_flag as user_flag,
					$sql_online_display			as user_online_display,
					$sql_email_display			as user_email_display,
					$sql_pm_display				as user_pm_display,
					$sql_www_display			as user_www_display,
					$sql_messanger_display		as user_messanger_display,
					$sql_real_display			as user_real_display,

					$sql_user_my_friend			as user_my_friend,
					$sql_user_my_ignore			as user_my_ignore,
					$sql_user_my_visible		as user_my_visible,

					$sql_user_friend			as user_friend,
					$sql_user_ignore			as user_ignore,
					$sql_user_visible			as user_visible

					$sql_fields

				FROM (((((" . USERS_TABLE . " as u
				LEFT JOIN " . FLAG_TABLE . " as f ON f.flag_image = u.user_from_flag)
				LEFT JOIN " . BUDDYS_TABLE . " as b ON b.user_id = u.user_id AND b.buddy_id=$view_user_id)
				LEFT JOIN " . BUDDYS_TABLE . " as i ON i.user_id=$view_user_id AND i.buddy_id=u.user_id)
				LEFT JOIN " . RANKS_TABLE . " as sr ON u.user_rank > 0 AND sr.rank_special = 1 AND u.user_rank = sr.rank_id)
				LEFT JOIN " . RANKS_TABLE . " as nr ON u.user_rank = 0 AND nr.rank_special = 0 AND nr.rank_min <= u.user_posts)

				WHERE u.user_id <> " . ANONYMOUS;

	// friend list
	if ($friend_list)
	{
		$sql .= " AND i.buddy_ignore = 0";
	}

	// ignore list
	if ($ignore_list)
	{
		$sql .= " AND i.buddy_ignore = 1";
	}

	// filter
	$sql_having = '';
	if ($fvalue != '')
	{
		$val = $fvalue;
		$t_comp = $comp;
		$t_filter = $filter;

		// date format
		switch ($filter)
		{
			// full datetime
			case 'user_lastvisit':
			case 'user_regdate':
				$t_filter = $$t_filter;
				$val1 = mktime( 0, 0, 1, intval(substr($val, 4, 2)), intval(substr($val, 6, 2)), intval(substr($val, 0, 4)) );
				$val2 = mktime( 23, 59, 59, intval(substr($val, 4, 2)), intval(substr($val, 6, 2)), intval(substr($val, 0, 4)) );
				switch($t_comp)
				{
					case 'EQ': 
					case 'IN': $t_comp = 'RG'; break;
					case 'NE':
					case 'NI': $t_comp = 'NR'; break;
					case 'LE': $val= $val2;
					default: $val=$val1;
				}
				break;
			// date only
			case 'user_birthday':
				$t_filter = $$t_filter;
				$val = intval($val);
				break;
			// new field
			case 'user_pm' :
			case 'user_online' :
				$t_filter = $$t_filter;
				$val = $fvalue;
				break;
			case 'user_my_friend' :
				$t_filter = ($sql_my_friend_2 != '') ? $sql_user_my_friend2 : $t_filter;
				$val = $fvalue;
				break;
			// matched fields
			case 'user_rank_title':
				$t_filter = ($sql_user_rank_title2 != '') ? $sql_user_rank_title2 : 'user_rank_title';
				$val = $fvalue;
				break;
			case 'user_flag':
				$t_filter = $sql_user_flag;
				$val = $fvalue;
				break;	
			default:
				if ( !in_array($user_fields[$filter]['class'], array('special', 'generic')) ) $t_filter = $$t_filter;
				if ( $user_fields[$filter]['class'] == 'generic' ) $t_filter = 'u.' . $t_filter;
				$val = $fvalue;
				break;
		}

		// filter on accessible field
		switch ($t_comp)
		{
			case 'RG': $sql_having = " HAVING  $t_filter >= '" . $val1 . "' AND $t_filter <= '" . $val2 . "'"; break;
			case 'NR': $sql_having = " HAVING  ($t_filter < '" . $val1 . "' OR $t_filter > '" . $val2 . "')"; break;
			case 'LE': $sql_having = " HAVING  $t_filter <= '" . $val . "'"; break;
			case 'EQ': $sql_having = " HAVING  $t_filter = '" . $val . "'"; break;
			case 'NE': $sql_having = " HAVING  $t_filter <> '" . $val . "'"; break;
			case 'GE': $sql_having = " HAVING  $t_filter >= '" . $val . "'"; break;
			case 'IN': $sql_having = " HAVING  $t_filter LIKE '%" . $val . "%'"; break;
			case 'NI': $sql_having = " HAVING  $t_filter NOT LIKE '%" . $val . "%'"; break;
			default:   $sql_having = " HAVING  $t_filter LIKE '%" . $val . "%'"; break;
		}
	}

	// set the group by clause
	$sql_group_by = " GROUP BY $sql_group_by_list";

	// convert field name to virtual
	$real_order = $order;
	if ( !in_array($user_fields[$real_order]['class'], array('generic', 'special')) ) $real_order .= '_virt';
	if ( $user_fields[$real_order]['class'] == 'generic') $real_order = 'u.' . $real_order;

	// get the order
	$sql_order .= " ORDER BY " . ( ($user_fields[$order]['sortable']) ? " $real_order $sort," : '' ) . " u.username ASC";

	// build the request
	$sql .= $sql_group_by . $sql_having . $sql_order;

	// read the number of row
	if ( !($result = $db->sql_query($sql)) ) message_die(GENERAL_ERROR, "Could not read user informations", '', __LINE__, __FILE__, $sql);
	$total_users = $db->sql_numrows($result);
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Mächtiges Script, gebe ich zu. Ohne jetzt die Datei komplett einzusehen, ändere in der profilecp/profile_boddy.php mal die Zeile

Code: Alles auswählen

   // build the request 
   $sql .= $sql_group_by . $sql_having . $sql_order; 
in diese ab

Code: Alles auswählen

   // build the request 
   $sql .= $sql_group_by . ' ' . $sql_having . ' ' . $sql_order; 
Wenn das nicht zum Erfolg führt, dann häng mal die genannte Datei als ZIP hier an.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
skittles
Beiträge: 820
Registriert: So 04.Apr, 2004 01:07
Wohnort: Wien

Beitrag von skittles »

Geht leider immer noch nicht! ¢¦
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Also ich kann da wirklich keinen weiteren Ansatz mehr finden, das nötige Leerzeichen einzufügen.
2 Möglichkeiten:
- Frage auf dem Board des PCP-Herstellers posten: http://rpgnet.clanmckeen.com/demo/viewforum.php?f=15
- Auf PCP 2.0.0 upgraden: http://rpgnet.clanmckeen.com/demo/viewtopic.php?t=818 (Im Paket sind alle Schritte enthalten).

Sorry, aber hier hören meine Kenntnisse des PCP leider auf.
Aber eine letzte Idee habe ich noch: Poste mir hier oder per PN mal einen Link zu Deinem Forum. Vielleicht kann ich im Quelltext mehr finden.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
skittles
Beiträge: 820
Registriert: So 04.Apr, 2004 01:07
Wohnort: Wien

Beitrag von skittles »

na ich werde einfach mal das pcp neu installieren! Mal sehen ob ichs hinbekomme!
Auf alle Fälle VIELEN DANK für deine Mühe, Hilfe und Unterstützung! ^b
[center]Populanten von transparenten Domizilen sollten
mit fester Materie keine transzendenten Bewegungen durchf?hren.
[/center]


Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Kein Problem.
Es ist halt immer mühsig, bei einem Mod zu helfen, den man selber nicht benutzt. Versuchen kann man es ja, aber ob erfolgreich ^6
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
dagobert
Beiträge: 457
Registriert: Mo 08.Mär, 2004 13:46
Wohnort: Altenkirchen
Kontaktdaten:

Beitrag von dagobert »

ich hatte das gleiche problem und habs so in den griff bekommen:
(keine ahnung, ob das ne gute lösung is ;) )

suche

Code: Alles auswählen

// get the order 
   $sql_order .= " ORDER BY " . ( ($user_fields[$order]['sortable']) ? " $real_order $sort," : '' ) . " u.username ASC";
ersetze mit

Code: Alles auswählen

// get the order 
   $sql_order = " ORDER BY " . ( ($user_fields[$order]['sortable']) ? " $real_order $sort," : '' ) . " u.username ASC";
Zuletzt geändert von dagobert am Do 22.Apr, 2004 19:52, insgesamt 1-mal geändert.
Benutzeravatar
skittles
Beiträge: 820
Registriert: So 04.Apr, 2004 01:07
Wohnort: Wien

Beitrag von skittles »

Das kann es doch nicht geben oder??? Wegen so eine Punkt steikt das ganze Ding?

Auf alle Fälle gehts nun! Vielen vielen dank!
[center]Populanten von transparenten Domizilen sollten
mit fester Materie keine transzendenten Bewegungen durchf?hren.
[/center]


Bild
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Da hätte ich auch lange suchen können. Sofern $sql_order vorher nicht eindeutig definiert wurde.
Dickes THX an Dich, dagobert :respect:
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten