PHP Anfängerproblem

below

Lieutenant
Registriert
Feb. 2004
Beiträge
637
Hallo,

ich fange gerade erst an mich mit PHP zu beschäftigen und habe da ein kleines Problem.

Ich habe 2 Tabellen.

1. Die Tabelle xr_news. In Ihr sind die News gespeichert. Der News Author ist mit einer ID angegeben.

2. Die Tabelle xr_members. Hier sind die Angaben für die verschiedenen Member drin. Jeder Member hat eine eindeutige ID.

Ich will jetzt in einer Tabelle alle News ausgeben, incl. Header , News_ID und Author. Allerdings möchte ich nicht die ID des Authors sondern den entsprechenden Nick angeben. Das funktioniert leider überhaupt nicht. Er gibt als Nick nichts aus, der Rest funktioniert.

Hier mal mein bisheriger Code:

PHP:
<?php
include ("./php/connect.php");
include ("./php/replaceLIB.php");
include ("./php/std_funcs.inc.php");


$loc_select = "SELECT * FROM xr_news ORDER BY NEWS_ID DESC";
$loc_query = mysql_query($loc_select);

//TABELLE MIT ALLEN VORHANDENEN EINTRÄGEN ANZEIGEN

echo("<table width=\"500\" border=\"1\">");

while($loc_ar = mysql_fetch_array($loc_query)){
	$NEWS_ID = $loc_ar["NEWS_ID"];
	$NEWS_HEADER = $loc_ar["NEWS_HEADER"];
	$NEWS_TEXT = $loc_ar["NEWS_TEXT"];
	$NEWS_AUTHOR = $loc_ar["NEWS_AUTHOR"];
	$NEWS_DATE = $loc_ar["NEWS_DATE"];
	$NEWS_CLICKS = $loc_ar["NEWS_CLICKS"];
	$NEWS_ACTIVE = $loc_ar["NEWS_ACTIVE"];

echo("<tr>
		<td width=\"50\" align=\"right\">
			$NEWS_ID
		</td>
		<td width=\"450\" align=\"left\">
			$NEWS_HEADER
		</td>
	  </tr>
	  
	  <tr>
		<td width=\"50\" align=\"right\">
			<b>");
				
//HIER SOLL DER NICK ZU DER ID AUSGELESEN WERDEN
$sql = "SELECT MEMBER_NICK FROM xr_members WHERE MEMBER_ID = '$NEWS_AUTHOR'";
$test_name = mysql_query ($sql);

echo("		   AUTHOR_ID:<br>
				$NEWS_AUTHOR<br>
                                $test_name
				
			</b>
		</td>
		<td width=\"450\" align=\"left\">
			$NEWS_TEXT
		</td>
	  </tr>
		");
			
}
echo("</table>");
echo ("");


?>

Ich hoffe mir kann da wer weiterhelfen. Es kommt keine Fehlermeldung...Es wird an Stelle des Nick einfach RESSOURCE ID#1(2,3etc) ausgegeben. Was muss ich noch ändern um wirklich den Namen auszugeben?
 
Zuletzt bearbeitet von einem Moderator: ([code] zu [php])
Hallo,

statt den vielen Abfragen in der while-Schleife würde ich einfach einmal die gesamte Members-Tabelle abfragen und dann die Member-Namen in einem Array direkt der entsprechenden ID zuordnen. So sparst du dir die ganze Abfragen und kannst somit auch direkt darauf zugreifen.

MfG mh1001
 
ich würde es eleganter machen.

$select = mysql_query("SELECT t1.*,t2.member_name FROM xr_news AS t1 LEFT JOIN xr_members AS t2 ON t1.NEWS_AUTHOR=t2.member_ID GROUP BY t1.NEWS_ID");
 
Zurück
Oben