mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: So 28.04.2024 22:25 Benutzername: Passwort: Auto-Login

Thema: OOP in PHP für Noob - Formulardaten verarbeiten vom 05.08.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> OOP in PHP für Noob - Formulardaten verarbeiten
Seite: Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Weiter
Autor Nachricht
mAsuRa

Dabei seit: 14.05.2005
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 19.08.2008 14:51
Titel

Antworten mit Zitat Zum Seitenanfang

Pixelpole hat geschrieben:
Ja richtig. PHP ist ein Command Line Interpreter. Meine Güte!



glaub du verwechselt PHP mit .Net
  View user's profile Private Nachricht senden
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Di 19.08.2008 14:58
Titel

Antworten mit Zitat Zum Seitenanfang

Langsam wirst du peinlich. Ich glaube eine weitere Diskussion macht hier keinen Sinn. Du hast 0 Ahnung von php und tust so als hättest du die Wahrheit mit Löffeln gefressen...

Eigne dir bitte etwas wissen über php an und dann können wir noch einmal diskutieren. Vorher hat das keinen Sinn. Alles andere ist unnötig...
  View user's profile Private Nachricht senden
Anzeige
Anzeige
mAsuRa

Dabei seit: 14.05.2005
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 19.08.2008 14:59
Titel

Antworten mit Zitat Zum Seitenanfang

DITO


Ärger dich nicht... es gibt schlimmeres
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 46
Geschlecht: Männlich
Verfasst Mi 20.08.2008 11:06
Titel

Antworten mit Zitat Zum Seitenanfang

So, ich hab mir mal dein beispiel angeguckt. deine Klasse besteht also im grunde aus dem einzelnen Score und der Summe der Scores, sprich der Highscore-Liste, oder?

Ich hab jetzt mal folgende Funktion gebaut. die gibt mir das auch aus, aber das ist ja nicht der Sinn der Übung. Was ich noch nicht verstanden habe ist, wie ich das am besten splitte. Also wie ich die einzelnen score-Objekte fülle

Code:
   public function getDatafromDB()
        {
           $anfrage = "SELECT start,ziel FROM abfragen ORDER BY anzahl DESC LIMIT 0,5";
           $ergebnis = db_query($anfrage);
           $anz = mysql_num_rows($ergebnis);
              if (mysql_num_rows($ergebnis)==0) {
                          print("Noch keine Abfragen getätigt");
                        }
                        else {
                         $liste = mysql_fetch_all($ergebnis);
                         for($i = 0; $i < mysql_num_rows($ergebnis); $i++) {
                          $zaehler = $i + 1;
                         
                          print ($zaehler.": ".$liste[$i][0]." -> ".$liste[$i][1]."'>".$liste[$i][0]." -> ".$liste[$i][1]."<br /> ");
                         };
                        }       
        }
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Mi 20.08.2008 12:20
Titel

Antworten mit Zitat Zum Seitenanfang

also ich bring das mal mit meinem Codebeispiel in Verbindung *zwinker*

Also du kannst das ganze füllen indem du das so machst:

Code:

$score = new Score($score, $name); //käme in deinem Fall natürlichaus der DB
$highscore_list->addScore($score);


oder die verkürzte Variante
Code:

$highscore_list->addScore(new Score($score, $name));


wenn man das mal mit deiner Funktion verbindet:

Code:

<?php
public function getDatafromDB()
        {
           $anfrage = "SELECT start,ziel FROM abfragen ORDER BY anzahl DESC LIMIT 0,5";
           $ergebnis = db_query($anfrage);
           $anz = mysql_num_rows($ergebnis);
              if (mysql_num_rows($ergebnis)==0) {
                          print("Noch keine Abfragen getätigt");
                        }
                        else {
                         $liste = mysql_fetch_all($ergebnis);
                         for($i = 0; $i < mysql_num_rows($ergebnis); $i++) {
                          $zaehler = $i + 1;
                         
                          $this->addScore(new Score($zaehler, $start, $ziel));
                         };
                        }       
        }
       
public function generateHTML() {
   ...
}


Ich kenne jetzt nicht den Rest deines Codes, aber bei der Objekt Orientierten Programmierung versucht man einzelne funktionalitäten so stark wie möglich zu kapseln. das lesen der daten aus der datenbank und die ausgabe sollten in 2 getrennte Methoden gekapselt werden.
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 46
Geschlecht: Männlich
Verfasst Mi 20.08.2008 14:42
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, das mit dem Kapseln empfinde ich ja eben auch als den großen Vorteil von OOP.

Hab ich dass richtig verstanden?
ich würde jetzt das ganze so bauen, dass ich in der eigentlichen Seite nur ein Objekt highscorelist erzeuge. highscorelist hat auch nur eine Eigenschaft, nämlich den Inhalt vom Typ array. Ich rufe dann auf der Seite nur $liste->generateHTML() auf. In diese Mehode kommt dann die Ausgabe des Arrays Inhalt. Und diesen inhalt wiederum erzeuge ich durch den Aufbau von 5 score-Objekten durch die Methode getDatafromDB.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Pixelpole

Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht: Männlich
Verfasst Mi 20.08.2008 15:38
Titel

Antworten mit Zitat Zum Seitenanfang

jap, haste richtig verstanden * Ja, ja, ja... *

nur das ich die Datenbankbindung aus dem Objekt rausnehmen würde. Für die Datenbankbindung würde ich wieder ein eigenes Objekt nehmen, dieses hätte beispielsweise methoden um sich mit der datenbank zu verbinden oder dir ein Array mit Daten zurück zu geben.

Hat einfach den Vorteil: wenn du auf ein anderes Datenbanksystem umsteigst hast du wesentlich weniger probleme da du nirgends in deinem Code konkrete implementierungen hast.

Falls du doch innerhalb deines Objektes Datenbankfunktionen nutzen wollst kannst du ein Datenbankobjekt delegieren (man spricht hierbei von Aggregation, bedeuted einfach ausgedrückt eigentlich nur das du in einem OBjekt ein anderes Objekt als Eigenschaft speicherst) und dessen methoden nutzen. Hierbei solltest du darauf achten das du eine einheitliche schnittstelle bildest (am einfachsten kannst du dies über ein Interface erzwingen, aber das solltest du in dem Buch nachlesen das ich dir empfohlen habe *zwinker* ).

Und das war jetzt nur ein Beispiel für eine Lösung, das ganze kann man natürlicha auch ganz anders angehen.

Ich hoffe ich hab dich jetzt nicht verwirrst * Mal bisschen die Nase pudern... *
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 46
Geschlecht: Männlich
Verfasst Mi 20.08.2008 16:31
Titel

Antworten mit Zitat Zum Seitenanfang

Nene, vom Prinzip her glaub ich hab ich das schon verstanden. das ist in dem fall nur mit Kanonen auf Spatzen geschossen und ich muss mich ja auch noch weiter entwicklen können. Grins

Danke erst mal für deine Mühe!


Zuletzt bearbeitet von Nimroy am Mi 20.08.2008 16:31, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen XML verarbeiten mit php
[php] [sql] formulardaten => CSV
Formulardaten in csv
PHP? Daten auslesen/verarbeiten
[SQL] Eingefügte ID herausfinden und verarbeiten
Markierungen in UltraEdit verarbeiten
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.