PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Klassenliste erstellen (http://www.selfphp.de/forum/showthread.php?t=18289)

mrmoechen 18.12.2007 17:14:28

Klassenliste erstellen
 
Hallo Leute,

ich habe ein neues Problem:

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,

mrmoechen

feuervogel 18.12.2007 17:44:39

AW: Klassenliste erstellen
 
wie wärs mit einem

select name, klasse from table order by klasse

und dann bei der ausgabe eben nur die klasse ausgeben wenn sie ungleich zu der klasse des vorherigen schülers ist...

mrmoechen 18.12.2007 20:01:34

AW: Klassenliste erstellen
 
danke feuervogel,

hab das mal probiert, nur bin ich php-mäßig noch ziemlicher Anfänger.
Wie sieht der Code ungefähr aus??

Tumasch 18.12.2007 20:14:24

AW: Klassenliste erstellen
 
zeig was du hast, und wir zeigen dir was du bekommen könntest :-)

mrmoechen 18.12.2007 20:34:44

AW: Klassenliste erstellen
 
ok, da will ich mal nicht so sein, wenns hilft ;)

PHP-Code:

<?php

  $verbindung 
= @mysql_connect("xxx","xxx","xxx");
  
$sql "SELECT name, klasse FROM jos_users ORDER BY klasse";
  
$res mysql_query($sql);
  
$num mysql_num_rows($res);

while(
$row mysql_fetch_array($res)) {

$klasse $row['klasse'];
$name $row['name'];

echo 
"$klasse $name<br>";
}
 
   list(
$username) = mysql_fetch_row($res)
    
?>

Das mit der Bedingung kann ich einfach nicht...

Nebenbei: was bewirkt eigentlich das "list" am schluss??

vt1816 18.12.2007 22:38:36

AW: Klassenliste erstellen
 
Zitat:

Zitat von mrmoechen (Beitrag 110321)
...
Nebenbei: was bewirkt eigentlich das "list" am schluss??

list()

defabricator 19.12.2007 12:46:32

AW: Klassenliste erstellen
 
PHP-Code:

<?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($sqlverbindung);
// 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($resMYSQL_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";
}
?>


mrmoechen 20.12.2007 14:35:58

AW: Klassenliste erstellen
 
Danke, das ist klasse! Hat mir sehr geholfen.
Nur bei

// SQL Anfrage an den Mysql Server schicken

hast du bei verbindung das $ vergessen...
zum Glück hab ichs sofort gemerkt ;)
Danke nochmal!
MfG

Opendix 20.12.2007 15:10:08

AW: Klassenliste erstellen
 
Dieser Parameter ist aber sowiso optional und kann (solltest du nicht mehrere verbindungen zu verschiedenen Datenbanken haben) weggelassen werden und es funktioniert genauso :)

defabricator 20.12.2007 15:33:36

AW: Klassenliste erstellen
 
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 :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:21:08 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.