Leider ist es mir mit Hilfe dieses Script nicht gelungen aus einer anderen Tabelle (=benutzer) die Daten für den Part "usrname=$usrname" (siehe Link) einzubetten, so dass auch tatsächl. Daten aus der 2ten Tabelle ausgelesen werden.
mysql_connect($sqlhost,$sqluser,$sqlpwd );
mysql_select_db($database);
Die Zeile(n), in der geprüft wird, ob das bis hierhin erfolgreich war, hast Du sicher nur weggelassen?
$abfrage = "SELECT id, url, text, target ,sid FROM links WHERE id='".$id."'";
$result = mysql_query($abfrage)or die(mysql_error());
Die Zeile, in der geprüft wird, ob mysql_query() erfolgreich war, hast Du sicher nur weggelassen?
while(list($id, $url, $text, $target, $sid) = mysql_fetch_row($result))
Tipp: Verwende statt mysql_fetch_row() mysql_fetch_assoc(). Damit erhälst Du ein Feld mit Einträgen à la $row["id"], $row["url"], $row["text"], etc und bekommst a) keine Probleme, falls Du mal die SELECT-Abfrage änderst und vergisst, list() ebenfalls anzupassen und "verschmutzt" Dir b) nicht den Variablenraum mit lauter einzelnen Variablen, die eigentlich alle zusammengehören.
{
if ($text!="")
{
$code = md5($sid);
$link_q = "UPDATE links SET sid = '$code' WHERE id='".$id."'";
$link_r = mysql_query($link_q)or die(mysql_error());
Aha, Du hast die Fehlerprüfungen oben also tatsächlich nur der Übersichthalber weggelassen.. ;)
Hier muß wohl Deine Abfrage der zweiten Tabelle rein. Du hast leider vergessen zu erwähnen, was Du eigentlich genau abfragen willst, insofern ist das nur eine Vermutung.
$link = "<a href="$url?usrname=$usrname?sid=$code"
In eine URL gehört nur _ein_ Fragezeichen. Trenne einzelne Parameter in der URL durch & (im HTML-Quelltext _nicht_ & verwenden) oder besser noch, sofern Dein Server es akzeptiert, das Semikolon (dann hast Du nicht das Problem mit & und &).
Weiterhin solltest Du tunlichst darauf achten, alle Ausgaben durch htmlentities() zu machen, sofern nicht absolut sicher ist, daß die Daten nur die Buchstaben a bis z (groß wie klein) sowie die Ziffern 0 bis 9 enthalten. So ziemlich alles andere sollte in HTML als Sonderzeichen behandelt und mittels htmlentities() entsprechend maskiert werden:
$link="<a href="".$url."?"usrname=".htmlentities($usrname)"&sid=$code" [..]
Gruß,
soenk.e