ich habe in meiner Datenbank eine Schülerliste mit allen Schülern und einer Spalte mit der Klasse. Also stehen alle der Schüler aller verschiedenen Klassen in derselben Tabelle.
Nun möchte ich eine Seite schreiben, wo die Schüler nach Klassen aufgereiht werden, also zB:
1a
Bart
Milhouse
1b
Lisa
Terry
....
usw.
nur soll php bzw. sql nach Möglichkeit selbst erkennen, welche Klassen es überhaupt gibt. Es können nämlich jederzeit neue Klassen angegeben werden.
Bei Fragen wendet euch an mich, bei Lösungsvorschlägen - bringt sie vor! :)
Danke,
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (Skype, Mail, PN, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
<?php
// Verbindung zum Mysql Server herstellen
$verbindung = mysql_connect("xxx","xxx","xxx");
// wenn mysql_connect fehl schlägt, liefert es false zurück
// also: wenn !$verbindung, dann Verbindung fehlgeschlagen
if ( !$verbindung ) {
echo 'Verbindung zum Mysql Server ist fehlgeschlagen. ' . mysql_error();
exit();
}
// Datenbank auswählen
$dbselect = mysql_select_db('xxx', $verbindung);
// mysql_select_db liefert false, wenn die Datenbank nicht gewählt werden kann
if ( !$dbselect ) {
echo 'Datenbank konnte nicht ausgewählt werden. ' . mysql_error($verbindung);
exit();
}
// SQL Anfrage an den Mysql Server schicken
$sql = "SELECT name, klasse FROM jos_users ORDER BY klasse";
$res = mysql_query($sql, verbindung);
// mysql_query liefert false, wenn ein Fehler aufgetreten ist.
if ( !$res ) {
echo 'Fehler bei der SQL Anfrage. ' . mysql_error($verbindung);
exit();
}
$aktuelle_klasse = null;
// Alle Datensätze abarbeiten, einen nach dem anderen
while($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
// wenn sich die Klasse geändert hat
if ( $aktuelle_klasse!==$row['klasse'] ) {
// neue KLasse ausgeben
echo '== ' . $row['klasse'] . " ==<br />\n";
// und als aktuelle Klasse speichern
$aktuelle_klasse = $row['klasse'];
}
echo ' # ' . $row['name'] . "<br />\n";
}
?>
__________________
Wat der Bauer nich kennt, dit frisster nich.
Dieser Parameter ist aber sowiso optional und kann (solltest du nicht mehrere verbindungen zu verschiedenen Datenbanken haben) weggelassen werden und es funktioniert genauso :)
__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!
Ausser im Fehlerfall, wenn PHP von sich aus versucht, eine Verbindung mit den Werten von mysql.default_(port,host,user,password) herzustellen. Wenn man die Resource immer schön brav mit angibt, versucht PHP das garnicht erst, auch nicht bei "Server gone away" Fehlern, die einfach mal zwischendurch auftreten können, wenn der Mysql Server 'n Päuschen macht.
Also ich empfehle, diesen Parameter immer mit anzugeben. Naja, eigentlich empfehle ich, mysql_xyz() garnicht zu verwenden, sondern PDO :)
__________________
Wat der Bauer nich kennt, dit frisster nich.