TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 24.05.2006, 11:51   #1
TP-Insider
 
Benutzerbild von dieter99
 
Registriert seit: Dec 2001
Ort: Oberfranken
dieter99 ist auf einem guten Weg

(PHP) OOP - Der Einstieg


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.
dieter99 ist offline   Mit Zitat antworten


Alt 29.05.2006, 12:08   #2
TP-Insider
 
Benutzerbild von dieter99
 
Registriert seit: Dec 2001
Ort: Oberfranken
dieter99 ist auf einem guten Weg
kann mir niemand einen Anstoß geben?

Ich möchte endlich die OOP nutzen, doch leider fehlt mir die richtige Vorgehensweise.
dieter99 ist offline   Mit Zitat antworten
Alt 29.05.2006, 12:28   #3
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Moin

Ein OOP-Tutorial findest Du hier im Tutorial-Forum. Diese Dropdown Geschichte hat recht wenig mit OOP zu tun, da quasi sämtliche Merkmale einer "echten" Klasse fehlen. Das was Du vorhast könntest Du auch ganz bequem mit einer ganz simplen Funktion machen. Zum ersten kennenlernen von OOP bietet sich das erstellen einer Datenbank-Klasse an.

Zu deiner Frage...
Das kommt auf den Query-String an. Wenn die Struktur immer gleich ist, dann könntest Du auch nur die ID übergeben. Ansonsten bleibt dir der Aufruf der Funktion mit der Übergabe des kompletten Query-Strings, so wie Du es schon aufgeführt hast - und so "unelegant" ist das nicht.
Rizzo ist offline   Mit Zitat antworten
Alt 29.05.2006, 16:17   #4
TP-Senior
 
Registriert seit: Oct 2003
Ort: Hamburg
Der Hamburger macht alles soweit korrekt
@ Rizzo

Vielen Dank für den Weblink zu dem Datenbankklassen-Tutorial, durchaus interessante Seite auch für Fortgeschrittene PHPer, wie ich meine.
Der Hamburger ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
(PHP) OOP - Der Einstieg (PHP) OOP - Der Einstieg
« Rundungsproblem | Rekursive Abfrage »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:54 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67