Hi!
ich muss in meinen Informatik-Kurs (Klasse 12) ein kleines PHP-System entwickeln und soll dabei mit Class arbeiten.
Das Ziel ist vermutlich, das Arbeiten mit Klassen zu praktizieren. Das heißt jedoch nicht: "Ich mach um die Funktion man ein class drumrum und fertig ist die Laube." Der Sinn von Klassen beziehungsweise OOP besteht darin, Daten und Verarbeitungsmethoden zu koppeln. Am Ende soll ein möglichst universell einsetzbares Stück Code entstehen. Wie bei jeder Wiederverwendbarkeit dürfen dabei so wenig wie möglich Abhängigkeiten von außen existieren.
public function Teilnehmer() {
include('../application/config/setting.inc.php');
Auch wenn PHP das erlaubt, ist das konzeptionell Mist. Wenn die Klasse zum Funktionieren Daten braucht, so übergibt man diese beim Instantiieren. Ansonsten ist diese Klasse von genau dieser Datei abhängig und in anderen Szenarien schwerlich einsetzbar. Also: Erstell einen Konstruktor, der die notwendigen Daten übergeben bekommt und sie in Objektvariablen ablegt, so dass die Methoden darauf zugreifen können.
Vermutlich öffnest du im inkludierten Code auch die DB-Verbindung. Das muss dann in den Konstruktor (zumindest der Einfachheit halber. In realen Projekten löst man das idealerweise anders, doch das lass ich mal weg, sonst wird es zu komplex.)
$teilnehmer_db = "SELECT name, vorname FROM ".$db_table." WHERE name != 0 ORDER BY name ASC;";
Welcher Teilnehmer heißt denn 0 mit Namen? $teilnehmer_db ist auch ein komischer Name, denn es handelt sich beim Inhalt um ein SQL-Statement (query/sql) und nicht um eine Datenbank (db).
$teilnehmer_result = mysql_query($teilnehmer_db) or die( mysql_error() );
"or die()" ist eine der unschönsten Fehlerreaktionen, aber sei es drum.
}
Und nun? Was machst du mit der Ergebnismenge? Willst du die nicht abfragen und das Ergebnis zurückgeben?
echo $kurs->Teilnehmer($row['name']);
Hast du überhaupt schon mal mit Funktionen außerhalb von OOP hantiert? Du übergibst hier einen Parameter und erwartest einen Rückgabewert, aber weder übernimmst du hier einen Parameter
public function Teilnehmer() {
noch gibst du in der Funktion/Methode ein Ergebnis zurück (return).
Lo!