Hallo,
Ich habe ein Problem mit einer Abfrage in MySQL
Folgender Datenbankaufbau ist vorhanden:
user(userID|username|email|registrationDate)
course(courseID|coursename|categoryID) (noch ein paar mehr Felder die für die Abfrage allerdings nicht relevant sind)
categories(categoryID|categoryname|groupID)
user_to_course(userID|courseID|valid|code)
Die ID's der eigenen Gruppen habe ich in einem Array ($owngroups)
Jetzt möchte ich mit einer Abfrage bzw einer Reihe von Abfragen folgendes Array erreichen:
Bisher habe ich folgendes Konstrukt:
Dadurch bekomme ich folgendes Array:
Wie man sehen kann ist es ja nicht gerade gleich dem was ich gerne hätte.
hoffe mir knann jmd sagen wie ich es hinbekomme.
Eine Überprüfung ob der Kurse (in der Spalte course) in einer Kategorie steht die einer eigenen Gruppe zugeordnet ist findet noch nicht statt.
lg
Ich habe ein Problem mit einer Abfrage in MySQL
Folgender Datenbankaufbau ist vorhanden:
user(userID|username|email|registrationDate)
course(courseID|coursename|categoryID) (noch ein paar mehr Felder die für die Abfrage allerdings nicht relevant sind)
categories(categoryID|categoryname|groupID)
user_to_course(userID|courseID|valid|code)
Die ID's der eigenen Gruppen habe ich in einem Array ($owngroups)
Jetzt möchte ich mit einer Abfrage bzw einer Reihe von Abfragen folgendes Array erreichen:
Code:
Array ( [2] => Array ( [userID] => 2 [username] => 13f1d1e67f [email] => 13f1d1e67f@example.com [registrationDate] => 1285463023 [course] => Array ( [0] => Array { [courseID] => 1 [courseName] => TestKurs [categoryID] => 1 [categoryName] => TestKategorie [own] => 1 [valid] => 1 [key] => 0 } ) ) [1] => Array ( [userID] => 1 [username] => 1698e1f5ro [email] => 1698e1f5ro@example.com [registrationDate] => 1285449974 [course] => Array ( [0] => Array { [courseID] => 1 [courseName] => TestKurs [categoryID] => 1 [categoryName] => TestKategorie [own] => 1 [valid] => 0 [key] => f015efgh } [1] => Array { [courseID] => 2 [courseName] => TestKurs2 [categoryID] => 1 [categoryName] => TestKategorie [own] => 1 [valid] => 1 [key] => 0 } [2] => Array { [courseID] => 2 [courseName] => TestKurs2 [categoryID] => 2 [categoryName] => TestKategorie2 [own] => 0 [valid] => 0 [key] => fgths652 } ) ) )
PHP-Code:
$sql = "SELECT a.*, b.* FROM user_to_course b LEFT JOIN user a ON a.userID = b.userID ORDER BY b.userID DESC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
if(!isset($data[$row['userID']])) {
$data[$row['userID']] = $row; //neuen User einfügen
$data[$row['userID']]['courseID'] = array($row['courseID']); //courseID als eigenes Array anlegen
} else {
$data[$row['userID']]['courseID'][]=$row['courseID']; //falls der User schon existiert, nur die courseID hinzufügen
}
}
Code:
Array ( [2] => Array ( [userID] => 2 [username] => 13f1d1e67f [email] => 13f1d1e67f@example.com [registrationDate] => 1285463023 [courseID] => Array ( [0] => 1 ) [valid] => 0 [key] => 0 ) [1] => Array ( [userID] => 1 [username] => Admin [email] => rene-gessinger@web.de [registrationDate] => 1285449974 [courseID] => Array ( [0] => 3 [1] => 1 [2] => 2 ) [valid] => 0 [key] => 0 ) )
hoffe mir knann jmd sagen wie ich es hinbekomme.
Eine Überprüfung ob der Kurse (in der Spalte course) in einer Kategorie steht die einer eigenen Gruppe zugeordnet ist findet noch nicht statt.
lg
Kommentar