Sql result manipulieren und troztdem mit mysql_fetch_object auslesen

supersalzi

Erfahrenes Mitglied
Schönen Sonntag,

Ich hab mal wieder eine blöde Frage:

Ich möchte eine Klasse für mein Blog schreiben und dazu soll von jedem Eintrag eine Voransicht gezeigt werden (wie das so üblich ist).

Die Frage ist, ob ich in der Klasse die Datanbank auslesen kann, mittels PHP den Text entsprechend verkürzen, und dann (jetzt kommts) das ganze wieder so in eine Variable packen, dass ich mittels mysql_fetch object (oder ähnlichem) in meinem Template das ganze in einer Schleife ausgeben kann?

(Oder baut man da besser ein mehrdimensionales Array?)

danke schonmal!
 
da kann ich aber nicht so schön zwischen den Wörtern Trennen, oder geht das etwa mittels eines Regulären Ausdrucks ?

Nachtrag:

substring_index sieht ganz interessant aus, ich versuchs mal...
 
Zuletzt bearbeitet:
Reguläre Ausdrücke kannst Du durchaus verwenden.

http://dev.mysql.com/doc/refman/5.0/en/regexp.html

mit ein bisschen Grübeln wird wohl auch der passende für Dich dabei sein.

Aber wenn Du genau trennen möchtest, (was bei sehr langen Wörtern in der Begrenzung, etc) würde ich wohl PHP bevorzugen.

Innerhalb Deiner Klasse kannst Du natürlich Daten manipulieren, wies Dir beliebt.
Allerdings hab ich nicht ganz verstanden, warum Du im Resultset was verändern willst.

Ich denke mal, dass Du in Deinem Template erst über eine Methode das Result durchläufst und auf diese Weise Speicher einsparst, weil Du nicht erst alles in einen Array packst.
Wäre es nicht eine Möglichkeit, eine Funktion für dein Template zu schreiben (Bei Smarty geht das sehr gut) welche die Daten bei der Augabe entsprechend manipuliert?
 
Das Problem ist, dass ich diesen Teil des Blogs in verschiedenen Templates benutzen möchte. Insofern dachte ich, es wäre praktisch ich rufe die Funktion aus der Klasse auf und das entsprechende wird ausgegeben.
Auf die Idee mit dem Umweg kam ich nur, weil ich kein html in der Klasse haben möchte.

Es muss doch irgendeine Lösung geben html und php einigermaßen zu trennen bei solchen Datenbankabfragen(?).
 
Na klar.

Du benutzt doch ein Template-System.
Ich arbeite ähnlich.
Ich schreibe generell Klassen, die die Daten aus der DB holen, Sie manipulieren und in die DB schreiben. Also genau genommen machen das die Methoden.
Dann habe ich Scripte, die Instanzen dieser Klassen erzeugen, und die entsprechenden Methoden aufrufen. Für die Ausgabe benutze ich Smarty (http://smarty.php.net). Dabei übergebe ich dem Template die darzustellenden Daten. Eine Ausgabe durch ein Script nicht via Template erfolgt bei mir grundsätzlich nicht. Als Folge davon gibt es bei mir nicht eine einzige Zeile dieser art:

PHP:
echo "Text";


  • Fazit Daten liegen im Modell und werden auch von diesem manipuliert.
  • Logik liegt im Script
  • Darstellung liegt im Template.
Es gibt da noch einen weiteren Vorteil. Da ich in einem
Team arbeite, können auch Webdesigner ohne großartige Programmierkenntnisse Templates schreiben.

Die strikte Trennung von Php und HTML kann ich nur wärmstens empfehlen.

Viele Grüße
jrook
 
Zurück