Buddylist, Namens-Anzeige

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!
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Buddylist, Namens-Anzeige

Beitrag von Darezettl »

Ich will das bei den Texten „zu Buddies hinzufügen“ bzw. „Freundschaft beenden“ beim Buddylist MOD noch der Username des dazugehörigen Freundes angezeigt wird.

Ich hätte es so gemacht:

Das

Code: Alles auswählen

//
// Getting the buddy images to appear
// This will create image and text links, and will choose add/remove appropriately
//
function get_buddy_img(&$user_id, &$buddy_id)
{
	global $db, $lang, $template, $theme, $images, $phpEx;
	global $HTTP_SERVER_VARS;

	$action = preg_replace("#(\&buddy=remove)+?#si", '', $HTTP_SERVER_VARS['REQUEST_URI']);
	$action = preg_replace("#(\&b=$buddy_id)+?#si", '', $action);
	$action = preg_replace('#.*?([a-z]+?\.' . $phpEx . '.*?)$#i', '\1', htmlspecialchars($action));

	$buddy = '';
	$buddy_img = '';
	if( $buddy_id != $user_id && $user_id != ANONYMOUS && $buddy_id != ANONYMOUS )
	{
		$sql = "SELECT buddy_id FROM " . BUDDIES_TABLE . " WHERE user_id = $user_id AND buddy_id = $buddy_id";
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not retrieve buddy information', '', __LINE__, __FILE__, $sql);
		}

		if( $row = $db->sql_fetchrow($result) )
		{
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=remove&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy_remove'] . '" alt="' . $lang['Remove_buddy'] . '" title="' . $lang['Remove_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $lang['Remove_buddy'] . '</a>';
		}
		else
		{
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=add&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy'] . '" alt="' . $lang['Add_buddy'] . '" title="' . $lang['Add_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $lang['Add_buddy'] . '</a>';
		}

		$db->sql_freeresult($result);
	}

	return array($buddy_img, $buddy);
}
Mit dem ersetzt:

Code: Alles auswählen

//
// Getting the buddy images to appear
// This will create image and text links, and will choose add/remove appropriately
//
function get_buddy_img(&$user_id, &$buddy_id)
{
	global $db, $lang, $template, $theme, $images, $phpEx;
	global $HTTP_SERVER_VARS;

	$action = preg_replace("#(\&buddy=remove)+?#si", '', $HTTP_SERVER_VARS['REQUEST_URI']);
	$action = preg_replace("#(\&b=$buddy_id)+?#si", '', $action);
	$action = preg_replace('#.*?([a-z]+?\.' . $phpEx . '.*?)$#i', '\1', htmlspecialchars($action));

	$buddy = '';
	$buddy_img = '';
	if( $buddy_id != $user_id && $user_id != ANONYMOUS && $buddy_id != ANONYMOUS )
	{
		$sql = "SELECT b.buddy_id, u.username AS buddy_name FROM " . BUDDIES_TABLE . " b, " . USERS_TABLE . " u WHERE user_id = $user_id AND buddy_id = $buddy_id";
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not retrieve buddy information', '', __LINE__, __FILE__, $sql);
		}

		if( $row = $db->sql_fetchrow($result) )
		{
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=remove&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy_remove'] . '" alt="' . $lang['Remove_buddy'] . '" title="' . $lang['Remove_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Remove_buddy'] . '</a>';
		}
		else
		{
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=add&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy'] . '" alt="' . $lang['Add_buddy'] . '" title="' . $lang['Add_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Add_buddy'] . '</a>';
		}

		$db->sql_freeresult($result);
	}

	return array($buddy_img, $buddy);
}
Aber der Name wird nicht angezeigt. Was hab ich falsch gemacht?
Zuletzt geändert von Darezettl am Sa 03.Mär, 2007 11:31, insgesamt 1-mal geändert.
Bild
Life begins @ 1/1000
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Was hab ich falsch gemacht?
Null nachgedacht :p

Denke mal in Ruhe nach, wo Du $buddy_name das erste mal nach der Abfrage aus der Datenbank, also nach

Code: Alles auswählen

if( $row = $db->sql_fetchrow($result) )
erstellst ;)
Kleiner Tipp: Ich suchte auch danach!
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!
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

Ähh... keine Ahnung?


so vielleicht? ist das korrekt?

Code: Alles auswählen


//
// Getting the buddy images to appear
// This will create image and text links, and will choose add/remove appropriately
//
function get_buddy_img(&$user_id, &$buddy_id, &$buddy_name)
{
	global $db, $lang, $template, $theme, $images, $phpEx;
	global $HTTP_SERVER_VARS;

	$action = preg_replace("#(\&buddy=remove)+?#si", '', $HTTP_SERVER_VARS['REQUEST_URI']);
	$action = preg_replace("#(\&b=$buddy_id)+?#si", '', $action);
	$action = preg_replace('#.*?([a-z]+?\.' . $phpEx . '.*?)$#i', '\1', htmlspecialchars($action));

	$buddy = '';
	$buddy_img = '';
	$buddy_name = '';
	if( $buddy_id != $user_id && $user_id != ANONYMOUS && $buddy_id != ANONYMOUS )
	{
		$sql = "SELECT buddy_id, buddy_name FROM " . BUDDIES_TABLE . " WHERE user_id = $user_id AND buddy_id = $buddy_id AND buddy_name = $buddy_name AND username = $username";
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not retrieve buddy information', '', __LINE__, __FILE__, $sql);
		}

		if( $row = $db->sql_fetchrow($result) )
		{
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=remove&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy_remove'] . '" alt="' . $lang['Remove_buddy'] . '" title="' . $lang['Remove_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Remove_buddy'] . '</a>';
		}
		else
		{
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=add&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy'] . '" alt="' . $lang['Add_buddy'] . '" title="' . $lang['Add_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Add_buddy'] . '</a>';
		}

		$db->sql_freeresult($result);
	}

	return array($buddy_img, $buddy, $buddy_name);
}
Zuletzt geändert von Darezettl am Sa 03.Mär, 2007 13:32, insgesamt 2-mal geändert.
Bild
Life begins @ 1/1000
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

[quote="oxpus";p="70651"]Denke mal in Ruhe nach, wo Du $buddy_name das erste mal nach der Abfrage aus der Datenbank, also nach

Code: Alles auswählen

if( $row = $db->sql_fetchrow($result) )
[/quote]
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!
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

Ok, hab nachgedacht, aber ich komm ehrlich gesagt nicht drauf auf was du hinauswillst.......
Bild
Life begins @ 1/1000
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nochmal:
Du willst $buddy_name verwenden, aber wo nach

Code: Alles auswählen

if( $row = $db->sql_fetchrow($result) )
wird denn diese Variable das erste Mal überhaupt definiert?
Hat denn diese Variable überhaupt einen Wert oder muss da nicht nochwas getan werden?

Denk mal nach!

Tipp:
Es reicht nicht allein in der SQL-Abfrage ein Feld hinzuzufügen, um diese Angaben verwenden zu können ;)
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!
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

Ja stimmt, der müsste man noch einen Wert zu weisen, nur welchen??
Also da musst mir jetzt bitte helfen.. das weiß ich beim besten willen nicht, da dass buddy-add / buddy-remove image auf vielen seiten verfügbar sein kann und somit man nciht einfach z.B. $postrow[$i]['username'] schrieben kann.


noch was anderes: ist die sql anweisung korrekt, oder hab ich das zu kompliziert gemacht?

Code: Alles auswählen

$sql = "SELECT b.buddy_id, u.username AS buddy_name FROM " . BUDDIES_TABLE . " b, " . USERS_TABLE . " u WHERE user_id = $user_id AND buddy_id = $buddy_id";
Bild
Life begins @ 1/1000
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Ja stimmt, der müsste man noch einen Wert zu weisen, nur welchen??
:hh: Na den, den du bereits aus der DB ausgelesen hast!
Zuletzt geändert von AmigaLink am So 04.Mär, 2007 12:48, insgesamt 1-mal geändert.
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

...

Also:
Die Abfrage war ja schon korrekt, aber wie kommt denn der Buddyname über die Abfrage in die Variable $buddy_name?
Wohl kaum, indem Du "nur" b.buddy_id, u.username AS buddy_name in die Abfrage einfügst, sondern eben diese aus $row nach der Zeile

Code: Alles auswählen

if( $row = $db->sql_fetchrow($result) )
auch herausholst.
In dem Falle eben

Code: Alles auswählen

$buddy_name = $row['buddy_name'];
Jetzt endlich verstanden???????????

Und das war jetzt definitv das letzte Mal, daß ich Dir die einfachsten Grundlagen erklärt habe!

Over and out...
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
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Kleiner Tipp noch: Das gilt natürlich auch für $buddy_id. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, nein, die wird ja durch die Funktion selber schon übergeben ...
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
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

?? Hab ich was Übersehen?

...

:hh: Ja, ok. Ich merk schon das war Gestern wohl doch ein wenig zuviel Allohol. :D
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Es sei verzeihen ;)
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!
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

so hier, geht aber nicht. wird kein name angezeigt.
was is falsch=?


Code: Alles auswählen

//
// Getting the buddy images to appear
// This will create image and text links, and will choose add/remove appropriately
//
function get_buddy_img(&$user_id, &$buddy_id)
{
	global $db, $lang, $template, $theme, $images, $phpEx;
	global $HTTP_SERVER_VARS;

	$action = preg_replace("#(\&buddy=remove)+?#si", '', $HTTP_SERVER_VARS['REQUEST_URI']);
	$action = preg_replace("#(\&b=$buddy_id)+?#si", '', $action);
	$action = preg_replace('#.*?([a-z]+?\.' . $phpEx . '.*?)$#i', '\1', htmlspecialchars($action));

	$buddy = '';
	$buddy_img = '';
	if( $buddy_id != $user_id && $user_id != ANONYMOUS && $buddy_id != ANONYMOUS )
	{
		$sql = "SELECT b.buddy_id, u.username AS buddy_name FROM " . BUDDIES_TABLE . " b, " . USERS_TABLE . " u WHERE u.user_id = $user_id AND b.buddy_id = $buddy_id";
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not retrieve buddy information', '', __LINE__, __FILE__, $sql);
		}
		if( $row = $db->sql_fetchrow($result) )
		{
			$buddy_name = $row['buddy_name'];
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=remove&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy_remove'] . '" alt="' . $lang['Remove_buddy'] . '" title="' . $lang['Remove_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Remove_buddy'] . '</a>';
		}
		else
		{
			$buddy_name = $row['buddy_name'];
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=add&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy'] . '" alt="' . $lang['Add_buddy'] . '" title="' . $lang['Add_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Add_buddy'] . '</a>';
		}

		$db->sql_freeresult($result);
	}

	return array($buddy_img, $buddy);
}
Zuletzt geändert von Darezettl am So 04.Mär, 2007 15:39, insgesamt 2-mal geändert.
Bild
Life begins @ 1/1000
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

:wall: Ist $row evtl. ein mehrdimensionaler Array?! ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

Ja isses, aber oxpus hat's oben auch "eindimensional" geschrieben.

Naja, wie auch immer, so gehts aber auch nicht (keine namensanzeige):

Code: Alles auswählen

		$sql = "SELECT b.buddy_id, u.username AS buddy_name FROM " . BUDDIES_TABLE . " b, " . USERS_TABLE . " u WHERE u.user_id = $user_id AND b.buddy_id = $buddy_id";
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not retrieve buddy information', '', __LINE__, __FILE__, $sql);
		}
		if( $row = $db->sql_fetchrow($result) )
		{
			$buddy_name = $row[$i]['buddy_name'];
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=remove&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy_remove'] . '" alt="' . $lang['Remove_buddy'] . '" title="' . $lang['Remove_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Remove_buddy'] . '</a>';
		}
		else
		{
			$buddy_name = $row[$i]['buddy_name'];
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' : '?' ) . "buddy=add&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy'] . '" alt="' . $lang['Add_buddy'] . '" title="' . $lang['Add_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Add_buddy'] . '</a>';
		}
Bild
Life begins @ 1/1000
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Welchen wert hat $i ^1
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

Ach wisst ihr was, vergesst es doch einfach.
Ich habs schön langsam satt dass man hier ständig dumm angemacht wird nur weil man keine Profi Kenntnisse wie ihr beide habt.

Ich weiß nicht welchen Wert das $i hat, ich weiß gerade mal dass man dadurch sogenannte mehrdimensionale Arrays machen kann. Mehr leider nicht.

Aber wenn ihr mir nicht helfen wollt, dann passts schon.
Auf sowas hab ich echt keinen Bock. ^^
Bild
Life begins @ 1/1000
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Fein, sind wir Dich dann endlich los?

Also mal ehrlich, beleidigen wollten wir Dich bei weitem nicht, aber wenn Du immer wieder seit über 1,5 Jahren bei den einfachsten Dingen nachfragst, scheint es wohl so, daß Du überhaupt nichts dazulernen willst.
Und sorry, dafür habe ich schlicht keine Zeit und Lust.
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
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Es geht hier gar nicht darum ob jemand Profi Kenntnisse hat oder nicht (ich zähle mich z.B. auch bei weitem nicht zu den Profis). Und es dürfte gerade dir mehr als Bekannt sein das wir immer gerne Helfen wenn wir es können und die Zeit dafür haben. Immerhin ist uns unser Wissen auch nicht einfach so in den Schoss gefallen. Wir mussten/müssen ebenfalls Lesen und gegebenenfalls nachfragen.

Aber wir (vor allem Karsten) haben dir, in den letzten Jahren, schon unzählige male gewisse Grundregeln der (PHP-)Programmierung erklärt und es kommen immer und immer wieder die gleichen Fragen von dir. Oftmals sogar mit der Aufforderung direkt den passenden Code mit zu liefern. Und genau darauf haben wir, auf dauer gesehen, weder Zeit noch Bock!

Je Erfahrener ein User ist (oder in deinem Fall mittlerweile sein sollte) je mehr beschränken wir uns auf Tipps und Hinweise. Das erspart uns viel Zeit und erhöht gleichzeitig den Lernfaktor.
Denn man lernt nichts wenn man die Lösung auf dem Silbertablett Serviert bekommt!

Dieser thread hier ist da ein sehr schönes Beispiel.
Ich gebe dir den Hinweis darauf das es sich um einen mehrdimensionalen Array handelt, du Überlegst und kommst auf das einfügen der Variable $i. Soweit schon mal richtig. :)
Was eine Variable ist und das man sie definieren muss, müsstest du schon lange wissen! Deswegen mein nächsten Hinweis darauf, das $i noch gar nicht definiert ist. ;)

Schalt doch bitte mal deinen Denkapparat ein und fange an die Sachen zu verarbeiten die wir dir immer und immer wieder Erklärt haben. Programmieren ist eine sache die zu 90% aus Logik besteht. Die restlichen 10% sind Grundwissen über Variablen, Strings, Arrays, Konstanten, ... und Erfahrung.
Mit steigender Erfahrung kommt weiteres Grundwissen über z.B. Klassen.

Schau dir all die Codes an, die wir dir im Laufe der Zeit gegeben haben und versuch zu Verstehen warum sie Funktionieren.
Wenn du einen mehrdimensionalen array unbekannter Größe auslesen möchtest. Dann musst du natürlich die Größe ermitteln und mit dem Ergebnis eine Schleife erstellen die dann die gewünschten Daten aus dem array holt.

// EDIT
Boah, hab ich jetzt tatsächlich über 5 Minuten gebraucht um diesen Beitrag zu Schreiben?! Bild
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Christian_N
Beiträge: 1787
Registriert: Sa 19.Feb, 2005 21:48
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von Christian_N »

[quote="AmigaLink";p="70718"]
Schau dir all die Codes an, die wir dir im Laufe der Zeit gegeben haben und versuch zu Verstehen warum sie Funktionieren.[/quote]
So mache ich das meisten, wenn ich weiss das ich schonmal hier was ähnliche hatte schaue ich mir erst den Beitrag unter der suchfunktion eigene Beiträge an und versuche daraus schlau zu werden erst wenn garnicht mehr funktioniert frage ich nach, da PHP am Anfang nicht sehr leicht ist und für mich auch noch lange nicht (hatte noch keine Zeit mich mit Bücher etc. da drüber zu beschäftigen) :)

[quote="AmigaLink";p="70718"]
// EDIT
Boah, hab ich jetzt tatsächlich über 5 Minuten gebraucht um diesen Beitrag zu Schreiben?! Bild[/quote]

Naja bei so einen Roman wohl kein wunder *gg*

EDIT: Übrigens wie oft hab ich schon hier Themen gestartet und dann kurze Zeit später die bearbeitet mit die Lösung weil ich dann doch noch drauf kam, z.B. jetzt zu letzt das mit der Navigation im Album wo ich auch erst nach knapp 2woche auf die Lösung kam. :)
Zuletzt geändert von Christian_N am So 04.Mär, 2007 22:33, insgesamt 1-mal geändert.
Meine Projekte: Chantals - Fanpage .::. phpBB Projekt
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

[quote="AmigaLink";p="70718"]
Ich gebe dir den Hinweis darauf das es sich um einen mehrdimensionalen Array handelt, du Überlegst und kommst auf das einfügen der Variable $i. Soweit schon mal richtig. :)
Was eine Variable ist und das man sie definieren muss, müsstest du schon lange wissen! Deswegen mein nächsten Hinweis darauf, das $i noch gar nicht definiert ist. ;)

Wenn du einen mehrdimensionalen array unbekannter Größe auslesen möchtest. Dann musst du natürlich die Größe ermitteln und mit dem Ergebnis eine Schleife erstellen die dann die gewünschten Daten aus dem array holt.

[/quote]


Und genau hier ist bei mir nun eben endgültig Ende im Gelände, weil das meine Fähigkeiten übersteigt.
Ich kann so Sachen wie Links generieren und dann in der .tpl die wieder holen, mit CSS kenn ich mittlerweile auch recht gut aus, aber bei trockenem reinem php steig ich eben oft nicht durch.


Ach ja und zum Lernfaktor, den ihr ja immer gern anpreist:
Ich glaub man lernt mehr, wenn ihr einfach mal die Lösung hinschreiben würdet UND dazu die Erklärung, was der Code nun genau macht und wie.
Ich kann natürlich auch ne Stunde rumprobieren und komme durch Zufall auf die richtige Lösung, Try and Error, aber bin ich danach dann schlauer? Wohl kaum. Nur mal so nebenbei, ihr Hobby-Pädagogen ^^
Bild
Life begins @ 1/1000
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Mit deinem letztem Satz hast du bei mir nun endgültig verschissen. Denn blöd anmachen lasse ich mich von dir nicht!!!

Und zum Lernfaktor. Genau das was du da gerne hättest, hast du von uns immer und immer wieder bekommen. Ganz offensichtlich trägt es bei dir aber keine Früchte. Es ist ja auch viel leichter sich die Lösung präsentieren zu lassen!

Und wenn du, wie du nun sagst, bei php nicht durch steigst. Dann Frage ich mich einmal mehr, wie du es geschafft hast selber MODs zu veröffentlichen??!
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich kann natürlich auch ne Stunde rumprobieren und komme durch Zufall auf die richtige Lösung, Try and Error, aber bin ich danach dann schlauer?
Was meinst Du, wie wir uns selber PHP beigebracht haben?
Klar brauchen da einige länger für, aber die einfachsten Dinge sollte man nach so langer Zeit hier auf OXPUS.de doch wohl wirklich mitgenommen haben, oder???

Und Pädagogik ist nicht mein Fachgebiet und als Hobby betreibe ich auch andere Dinge.
Ich hatte Dir auch schon so oft geschrieben, doch endlich mal z. B. mit einem Buch über PHP anzufangen, die eigentlich recht simple Scriptsprache zumundest im Ansatz zu lernen.
Es würde ja auch schon helfen, mit etwas logischem Denken die Struktur und die Abläufe in einem PHP/phpBB Script selber nachzuvollziehen, um hinter die Funktionsweise zu kommen.
Nur so kann man es selber lernen. Aber wenn man immer nur fertige Code-Schnipsel bekommt, kann man sich ja bequem zurücklehnen und weiter fragen, wie man dieses und jenes macht. Dadurch lernt man es wirklich nicht.

Nochmal:
OXPUS.de ist ein Support- und Entwicklerforum, aber keine Schulungsplattform (obwohl man hier durchaus einiges lernen kann).
Für letzteres habe ich nicht unbeschränkt Zeit, daher gehe ich bei den "älteren" Usern hier auch von einem gewissen Grundwissen bei meinen Antworten aus.
Wenn sich aber jemand wie Du dazu eher weigert, dieses Wissen endlich mal umzusetzen, bzw. es zu gebrauchen... Sorry, aber dann ist für mich wirklich Übungsende.

So und nun wieder ontopic und aus hier. Es ist schon wieder viel zu spät....

Vorerst allerletzer Nachtrag:
Mir war noch ein logischer Denkfehler in dem Script aufgefallen, aber da Du ja jetzt keine Hilfe mehr von uns annimmst, wirst Du wohl die Frage zum Code wohl kaum noch beantworten, oder?

Also hier die Frage:
Wurde bei allen Versuchen bislang überhaupt kein Buddy Name angezeigt oder nur bei den Usern, die noch nicht auf der Buddyliste stehen?
Bei letzterem würde mich das nicht wundern, denn in dem Script wird nur der Buddy herangezogen, der auch bei dem betreffenden User auf der Buddy-Liste enthalten ist.

Soviel zum Thema logisches Denken, AmigaLink und Oxpus ;)

Ich überlege dazu, wie man das lösen könnte, ein Ansatz wäre dieser hier:

Code: Alles auswählen

		$sql = "SELECT b.buddy_id, u.username AS buddy_name
			FROM " . BUDDIES_TABLE . " b, " . USERS_TABLE . " u
			WHERE u.user_id = $user_id
			AND b.buddy_id = $buddy_id";
		if( !$result = $db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not retrieve buddy information', '', __LINE__, __FILE__, $sql);
		}


		if( $row = $db->sql_fetchrow($result) )
		{
			$buddy_name = $row['buddy_name'];
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' %u3a '?' ) . "buddy=remove&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy_remove'] . '" alt="' . $lang['Remove_buddy'] . '" title="' . $lang['Remove_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Remove_buddy'] . '</a>';
		}
		else
		{
			$buddy_data = get_userdata($buddy_id);
			$buddy_name = $buddy_data['username'];
			$temp_url = $action . ( ( preg_match('#\?#', $action) ) ? '&' %u3a '?' ) . "buddy=add&b=$buddy_id";
			$buddy_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_buddy'] . '" alt="' . $lang['Add_buddy'] . '" title="' . $lang['Add_buddy'] . '" border="0" /></a>';
			$buddy = '<a href="' . $temp_url . '">' . $buddy_name . '&nbsp;' . $lang['Add_buddy'] . '</a>';
		}
wobei dann bei jedem User, der nicht auf der Buddy-Liste steht, eine zusätzliche Abfrage gegen die Datenbank gefahren wird, also im Extremfall je Post in einem Topic jeweils eine Abfrage mehr.
Auch nicht gerade die beste Lösung.

Man kann jetzt überlegen, wie man das besser löst.
In der Themenansicht ist jedenfalls der Postername bereits vorhanden, den man einfach vor den Buddy-Link setzen könnte.
Das klappt in der Regel dann auch bei allen anderen Seiten, wo der Buddy-Link eingefügt wurde und spart somit die zusätzliche und damit eher unnötige Abfrage.

Also, sofern Du noch mit uns/mir redest:
Wird/wurde NIE der Buddyname angezeigt oder nur bei den Usern, die NICHT bereits auch der Buddy-Liste der betreffenden User standen?
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!
Darezettl
Beiträge: 589
Registriert: So 31.Jul, 2005 23:43

Beitrag von Darezettl »

Hi,


also ein Name wurde noch nie vor dem Buddy-Text angezeigt.
Man kann jetzt überlegen, wie man das besser löst.
In der Themenansicht ist jedenfalls der Postername bereits vorhanden, den man einfach vor den Buddy-Link setzen könnte.
Das klappt in der Regel dann auch bei allen anderen Seiten, wo der Buddy-Link eingefügt wurde und spart somit die zusätzliche und damit eher unnötige Abfrage.
Ich hätts mal so probiert:

Code: Alles auswählen

{postrow.POSTER_NAME}&nbsp;{postrow.BUDDY}
Dann wird zwar angezeigt "Benutzer X zu Freunden hinzufügen"

Aber der Hyper-Link ist dann eben nur ab "zu Freunden hinzufügen", klar, und das ist ja auch irgendwie Sch....


Die Antwort auf deine Frage lautet also: Es wurde noch nie ein Name vor dem Buddy Text angezeigt.




---
Zum anderen Thema kann ich nur soviel sagen: Dir als phpBBHacks Author of the Year #2 kommen manche Sachen vielleicht kinderleicht vor, die für Normalsterbliche dagegen nicht so leicht sind. Und es ist ja NIE so, dass ich sag, "das und das will ich, und jetzt mach mir das mal". Wenn du dir meine Posts bzw. Threads mal ansiehst, in fast jedem ersten Beitrag habe ich bereits einen von mir überlegten Code-Vorschlag drinnen, für dessen Komplettierung ich dann eben oft noch deine Hilfe bräuchte.
Es ist also nicht so, dass ich mir keine Gedanken mache wie man das gewünschte Ergebniss erzielen kann, ich peils halt nur oft einfach nicht.
Zuletzt geändert von Darezettl am Mo 05.Mär, 2007 18:09, insgesamt 1-mal geändert.
Bild
Life begins @ 1/1000
Antworten