While Schleife bricht einfach ab

noisy

Mitglied
Moin, kann mir jemand bei der folgenden Funktion mal hilfe leisten?

Zuerst der Code:

PHP:
include("inc/connectdb.inc.php");
echo $cdesigner;
if(isset($cdesigner)) {
	$db->query("SELECT *, UC.role FROM tbl_user AS U LEFT JOIN tbl_usr_course AS UC ON U.UserID = UC.User_ID WHERE UC.role='".$role."' AND Course_ID = '".$KursID."'");	
} else $db->query("SELECT * FROM tbl_user AS U LEFT JOIN tbl_usr_course AS UC ON U.UserID = UC.User_ID WHERE UC.role='".$role."'");
echo "<table width=\"80%\" class=\"tblbody\">";
echo "<tr class=\"tblheader\">";
echo "<td>WebCT ID</td>";
echo "<td>Vorname</td>";
echo "<td>Name</td>";
echo "<td>Institution</td>";
echo "<td>Arbeitsbereich</td>";
echo "<td>Kurse</td>";
echo "<td width='25%' align='center' >Optionen</td>";
echo "</tr>";
while ($row = $db->fetch_object()) {    
	echo "<tr class=\"tblmain\">";    
	echo "<td>" .$row -> webctid . "</td>";    
	echo "<td>" .$row -> vorname . "</td>";    
	echo "<td>" .$row -> name . "</td>"; 
	echo "<td>" .$row -> InstitutionID. "</td>";
	echo "<td>" .$row -> WorkareaID. "</td>";
	echo "<td>";
	$db->query("SELECT *, UC.role FROM tbl_courses AS U LEFT JOIN tbl_usr_course AS UC ON U.KursID = UC.Course_ID WHERE UC.User_ID='".$row -> UserID."'");
	while ($courses = $db->fetch_object()) {
		echo $courses -> coursetitle ."(".$courses -> role .")<br>";
	}
	echo "</td>";
	echo "<td valign='middle'>";
	include("inc/editbox.php");
	echo "</td>";
	echo "</tr>";
}

Normalerweise sollte eine Liste der User ausgegeben werden. In dieser Liste wird in jedem Eintrag dann eine Liste von Kursen ausgegeben, in denen der User eingeschrieben ist.

Solange ich nur die User ausgebe und die zweite DB Anfrage rauslasse das auch alles, sobald ich jedoch die Liste der Kurse in jedem Datensatz ausgeben lasse, wird nur der erste Datensatz angezeigt, der Rest bleibt einfach weg. Eine Fehlermeldung wird auch nicht ausgegeben..... bin ratlos..... any Ideas?

Ach ja, es kommt hier die MySQL Klasse aus dem Tutorial zur Anwendung!

Noisy
 
Moinson,

Problem gelöst :) Einfach die query_id jeder Anfrage in eine Variable schreiben
und beim aufruf der Methode mit angeben...

PHP:
$db->query("SELECT *, UC.role FROM tbl_courses AS U LEFT JOIN 
tbl_usr_course AS UC ON U.KursID = UC.Course_ID WHERE UC.User_ID='".$row -> UserID."'");
$query1 = $db-> query_id; // Hier speichern der Query_ID 
    while ($courses = $db->fetch_object($query1)) { // Hier aufruf der Methode mit Query_ID
        echo $courses -> coursetitle ."(".$courses -> role .")<br>";
    }

its that easy ! ;-)
 
Zurück