lesen aus 2 mysql-tabellen?!

bloody

Mitglied
Hi, ich bin gerade mehr oder weniger nen Community-System am coden. So ne Art PHPNuke oder so :) Dazu gehört halt auch ein Forum und ich hab mir das so gedacht, dass sich ein User auf der Page registriert (was auch funzt) und seine Daten in der Tabelle "xmember" abgespeichert werden. Wenn er jetzt einen Forumeintrag macht, soll seine User ID (in der Tabelle "member_id") gespeichert werden. Das funktioniert auch alles, aber wenn ich mir jetzt als anderer User ide Forumthreads angucken möchte, soll aus der Tabelle "xforum" die Threaddaten (ThreadID, Topicname, etc) gelesen werden und aus der Tabelle an Hand der UserID "xmember" der Name des Users ausgegeben werden.
Mein Problem ist nur das, dass ich es nicht schaffe die UserID aus "xmember" und "xforum" auszulesen und auf einer Seite auszugeben. Es wird immer nur der Name des Users ausgegeben, der als letztes gepostet hat.

Ist ein bisschen schwer zu verstehen, aber ich denke ihr könnt damit was anfangen wenn ihr den Code habt.

PHP:
<?php
include ("reg.php");
$result = mysql_query('select * from sys_forum order by t_id desc');
echo "<table border=1>";

while($row = mysql_fetch_array($result))
	{
		$u_id = $row['user_id'];
		$poster = $row['poster'];
		$inhalt = $row['inhalt'];
		$t_id = $row['t_id'];
		$t_name = $row['t_name'];
		$datum = $row['date'];
		echo "<tr><td>$datum</td><td><a href=\"admin.php?page=forum_show?thread=$t_id&show=\">$t_name</a>";

		$resultzw = mysql_query("select nickname from xmember WHERE member_id = '$poster'");
		while($rowzw = mysql_fetch_array($resultzw))
		{
			$nick = $rowzw['nickname'];
			echo "<td><a href=\"admin.php?page=member?mbn=$poster\">$nick</a></td>";
		}
	}

echo "</tr></table>";
echo '<a href="admin.php?page=forum_newt">Neues Topic</a>';
?>

($u_id und $poster sind die selben Variablen (also Variablen mit selben Inhalt) aber in verschiedenen Tabellen und er soll halt aus einer Tabelle die User ID lesen und mit hilfe dieser User ID aus einer anderen Tabelle den passenden Nickname...und das halt für alle Forumeinträge.)
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
funktioniert es, wenn Du die beiden SQL-Abfragen zu einer zusammen fasst?
PHP:
include ("reg.php");
$sql = "SELECT sys_forum.user_id, sys_forum.poster, sys_forum.inhalt, sys_forum.t_id,
          sys_forum.t_name, sys_forum.date, xmember.nickname
        FROM sys_forum, xmember
        WHERE sys_forum.poster = xmember.member_id
        ORDER BY t_id desc";
$result = mysql_query($sql);
echo "<table border=1>";

while($row = mysql_fetch_array($result))
    {
        $u_id = $row['user_id'];
        $poster = $row['poster'];
        $inhalt = $row['inhalt'];
        $t_id = $row['t_id'];
        $t_name = $row['t_name'];
        $datum = $row['date'];
        $nick = $row['nickname'];
        echo "<tr><td>$datum</td><td><a href=\"admin.php?page=forum_show?thread=$t_id&show=\">$t_name</a>";
        echo "<td><a href=\"admin.php?page=member?mbn=$poster\">$nick</a></td>";
    }

echo "</tr></table>";
echo '<a href="admin.php?page=forum_newt">Neues Topic</a>';
?>

snuu
 
dann sagt er Fehler in Zeile 7, also der hier:
Code:
while($row = mysql_fetch_array($result))

und das gehört ja noch dazu:

$sql = "SELECT sys_forum.user_id, sys_forum.poster, sys_forum.inhalt, sys_forum.t_id, sys_forum.t_name, sys_forum.date, xmember.nickname FROM sys_forum, xmember WHERE sys_forum.poster = xmember.member_id ORDER BY t_id desc";
$result = mysql_query($sql);

sry, dass ich das jetzt so mache, aber mit deiner variante hab ich noch nie was mit MySQL gemacht, deshalb weiss ich nicht was da falsch sein sollte :rolleyes:
 
Warning: Supplied argument is not a valid MySQL result resource in c:\programme\apache\apache\htdocs\kit\forum\index.php on line 11
 
Hallo, Du kannst versuchen die Zeile 'ORDER BY t_id desc' in 'ORDER BY sys_forum.t_id desc' umzuwandeln. wenn Du PHPMyAdmin besitzt kannst Du auch probieren, ob das SQL-Statement funktioniert, bzw. vergleiche ob die in der SQL-Anweisung spezifizierten Felder auch in den entsprechnden Tabellen vorhanden sind.

snuu
 
dadran scheintsnicht zu liegen,
der fehler ist immernoch da

hab auch die zellen in der tabelle überprüft also dadran liegts auch nicht
---
edit:
hab den fehler gefunden, war ein komma zu viel =)
danke dir!
btw: funktioniert sogar :D
 
Zuletzt bearbeitet:
Zurück