Hauptmenü

Untermenü

Advanced SQL - Praxistutorial 1 - Die grundsätzliche Vorgehensweise

1. Die Abschnitte

2. Das Prinzip

Bei den folgenden Abschnitten arbeiten wir mit zwei Klassen. Auch wenn die den Namen eigentlich nicht verdienen. aber darauf habe ich ja schon zu Beginn hingewiesen. Dabei handelt es sich um Market und Player. Erstere ist für alle Dinge zuständig, die in irgendeiner Form was mit einem Tausch zu tun haben. Die zweite "Klasse" dagegen kümmert sich um alles, was Spieler betrifft. Ach ja, wo ihr was in welche Datei schreibt, sollte euch mittlerweile geläufig sein. Dazu äußere ich mich nicht mehr. Zumal die Dateien eh schon existieren.

3. Die Steuerung

... läuft in diesem Fall über GET-Parameter für die Anzeige und POST-Parameter für die Aktionen. Zunächst erzeugen wir unterhalb des Logins in der index.php zwei Objekte aus den Klassen Market und Player.


$player = new Player($db);
$market = new Market($db);

Danach nutzen wir dann die entsprechenden Methoden dieser "Klassen" anhand entsprechender Werte. Die Details dazu kommen später, hier stelle ich erst mal nur alle vor. Ach ja, der folgende Code kommt natürlich unter obigen in der index.php.

Die Klassen

... müssen dementsprechend über einen Konstruktor verfügen. Denn wir speichern die Referenz auf die Datenbankklasse in einer eigenen Eigenschaft ab. Diese Vorgehensweise kann unter Umständen zu einem seltsamen Verhalten führen, aber dazu werde ich mich in einem späteren Tutorial äußern. Außerdem betrifft uns das hier nicht.


// class/Player.class.php
class Player {
  private $db null;    
  public function __construct($db) {
    $this -> db $db;
  }
}
// class/Market.class.php
class Market {
  private $db null;    
  public function __construct($db) {
    $this -> db $db;
  }
}

4. Die Aktionen

Hier greifen wir auf drei Methoden der Market-Klasse zu. putOnMarket, um Spieler auf dem Marktplatz anzubieten, doDirectOffer für ein Direkt- und doSwapOffer für ein Tauschangebot.


if ('sell' == $_POST['do']) {
  $market -> putOnMarket();
}
else if ('buy' == $_POST['do']) {
  $market -> doDirectOffer();
}
else if ('swap' == $_POST['do']) {
  $market -> doSwapOffer();
}

5. Die Darstellung

Dafür benötigen wir insgesamt fünf Methoden. Eine aus der Market-"Klasse" und vier aus Player.


switch($_GET['do']) {
  case 'market' $html $market -> showPlayersOnMarket();
                  break;
  case 'sell'   $html $player -> getAllPlayersForSell();
                  break;
  case 'offer'  $html $player -> getGildPlayersForOffer();
                  break;
  case 'swap'   $html $player -> getGildPlayersForSwap();
                  break;
  default       : $html $player -> getAllPlayers();
}

Der Rückgabewert

Jede dieser Methoden liefert fertigen HTML-Code zurück. OK, das ist völliger Tinnef, aber dazu habe ich mich hier ja schon zig Mal geäußert. Sei's drum, der wird dann ganz weit unten einfach ausgegeben.


<div class="content">
  <?php echo $html?>
</div>

6. Und die Logik dahinter?

Na ja, mit Logik hat das nicht sehr viel zu tun. Da wir uns hier aber auf PDO und fortgeschrittene SQL-Techniken konzentrieren, spielt das keine Rolle. Und immer an den dicken Hinweis denken.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt