Hallo,
ich habe mich jetzt in objektorientiertes programmieren eingelesen. Ich weiss jetzt wie man Klassen, Objekte usw. erstellt. Um jedoch die Vorteile von OOP verstehen zu können möchte ich jetzt ein praktisches Beispiel starten. Ich habe z.B. 20 Dropdownmenüs. Der Inhalt der Dropdownmenüs wird aus einer mysql Datenbank geladen. Da die SQL Abfragen und die Eigenschaften der Dropdowns (Länge, Höhe, usw.) unterschiedlich sind müßte ich bei 20 Dropdownmenüs 20 Mal einen Code erzeugen. Ich möchte das jetzt mit OOP vereinfachen. Ich habe dazu fogende Klasse erstellt:
Code:
class drop
{
var $drop_name;
var $drop_hoehe;
var $drop_laenge;
function xx()
{
echo "<select size=\"$this->drop_hoehe\" name=\"$this->drop_name\">\n";
$drop_abfrage = mysql_query("$sql") or die ("Fehler in Abfrage");
while($drop_ausgabe=mysql_fetch_array($drop_abfrage))
{
echo "<option ";
echo ">";
echo $drop_ausgabe[0];
echo "</option>\n";
}
echo "</select>\n";
}
}
Das Objekt erstelle ich hiermit:
Code:
$drop_mandant = new drop;
$drop_mandant->drop_name="dropdown1";
$drop_mandant->drop_hoehe="5";
$drop_mandant->xx();
In der Klasse muss noch die Variable $sql befüllt werden. Es handelt sich hierbei um die SQL Abfrage. Diese ist aber bei jedem Dropdownmenü anders. z.B.
SELECT spalte1 FROM tabelle1 WHERE ID=x
oder
SELECT spalte2 FROM tabelle 3 WHERE ID=x AND spalte5='hallo'
oder
SELECT spalte3,spalte4 FROM tabelle1,tabelle2 WHERE spalte3='hallo5'
Ich stelle mir jetzt die Frage wie ich jetzt die Vorteile von OOP nutzen kann. Das Problem ist einfach das in der sql-Abfrage machmal mehrer WHERE Befehle dazu kommen.
Soll ich jetzt die komplette sql-Abfrage außerhalb der Klasse in eine Variable stecken?
in der Klasse steht dann:
var $drop_sql;
außerhalb steht dann:
$drop_mandant->drop_sql="SELECT spalte1 FROM tabelle1 WHERE ID=x";
Das ganze geht bestimmt viel viel eleganter. Vielleicht kann mir jemand bei meinen ersten Schritten etwas helfen. Nur mit Theorie komme ich leider nicht weiter.
Danke schon einmal im Voraus.