Tabellen includen aber nach Kriterium

FaBoW

Gesperrt
Hi ihr.

In folgender Situation befinde ich mich momentan:
Ich hab eine Index.php in die ich div. andere Seiten je nach $action include. Jede dieser "Unterseiten" hat einen MySQL SELECT * FROM und einen eigenen tabellarischen Output. Kurzgesagt n Newsscript, Gästebuch usw. Da ich nun bei Änderung des Layout die Tabellen in jeder Datei nicht von Hand ändern möchte, hab ich vor eine Datei mit den 4 verschiedenen Tabellenformationen anzulegen die ich in diese Unterseiten includen kann. Je nach Art der Unterseite (News, Works, Gästebuch, Member) möchte ich die passende Tabelle includen und den Rest außen vor lassen.
Aufbau der Tabellen.html sähe dann ungefähr so aus:

Code:
<table1></table>
<table2></table>
<table3></table>
<table4></table>



Das Problem das sich mir hier nun stellt ist die richtige Tabelle zu finden. Mit MySQL wäre das wohl ein "SELECT * FROM .. WHERE". Kann ich sowas auch mit PHP direkt machen? Also einen Anker (#table1) setzen und dann das, was nach dem Anker bis zum nächsten steht includen?

Alternativ lasse ich mich auch auf CSS ein wenn mir das jemand erklären möchte hauptsache ich hab alle Tabellen in einer Seite von wo ich es direkt ändern kann ohne 20 Unterseiten durchgehen zu müssen.


Achja: bitte keine Vorschläge mit PHP IN der Tabellen.html da ich diese komplett PHP-frei aufbauen will um einem Leien die Möglichkeit zu geben das Aussehen in wenigen Minuten zu ändern; d.h. ein Switch fällt schonmal raus :]


Edit: ich hoffe auf kompetente Hilfe und werd nicht wie in 'nem and'ren Forum dumm angemacht nur weil ich es nicht so haben möchte wie es am einfachsten wäre (Switch)
 
Könntest mit [phpf]file_get_contents[/phpf] die Tabelle.html in eine Variable speichern und dann mittels Expressions ( " {table1_anfang}(.*?){table1_ende}" oder so ;) ) die bestimmten tabellen aufrufen und einbinden :)

Also wenn du die richtige Expression hast geht das ohne Probleme.
 
Hi,

ich dank dir erstmal für die Anwort. Momentan steig ich aber noch nicht so durch.
file_get_contents() ist hier nicht das Problem, das ist klar. Gibt ja keine große Erklärung dazu :)
Klarkommen tu ich gerade nicht bei dem was du mir mit den Epxressions meinst. Klar muss ich jede Tabelle einzeln genau identifizieren können. Momentan fallen mir aber gerade mal die Funktionen explode() und split() ein. Meinst du das geht auch so? Wenn ich zwischen jede Tabelle ne bestimmte Zeichenfolge schreib, kann ich die HTML Datei doch mittels dieser "exploden"/"splitten"

Klar kommen tu ich hier nicht bei
array explode ( string separator, string string [, int limit])
Also "int limit" bei explode() bzw [, int Beschränkung]) bei split().

Kann ich hier direkt angeben welches Teilstück ich gerne hätte? Also 1,2, 3 oder 4?
 
Ich meine Das so:

PHP:
<?php

$string  = "{table1_Anfang}<table>blabla</table>{table1_ende}";
$string .= "{table2_Anfang}<table>blabla</table>{table2_ende}";


preg_match("#{table1_anfang}(.*?){table1_ende}#siU", $string, $tabelle);

echo $tabelle; //Tabelle 1 wird ausgegeben
?>

hoffe du hast es verstanden ;)
 
Mh ja so schon aber wie müsste dann meine HTML Datei aussehen?
Code:
{table1_Anfang}<table>blabla</table>{table1_ende}
{table2_Anfang}<table>blabla</table>{table2_ende}
{table3_Anfang}<table>blabla</table>{table3_ende}
{table4_Anfang}<table>blabla</table>{table4_ende}

und dann die Datei in file_get_contents() laden?
Also
PHP:
<?php
$string = file_get_contents('Tabellen.html');
preg_match("#{table1_anfang}(.*?){table1_ende}#siU", $string, $tabelle);
echo $tabelle;
?>

Ich hoffe ich hab das richtig verstanden :)
 
ja nun würdest du die erste Tabelle auslesen damit. Also es müsste vom logischen her funktionieren ;)
 
Ok ich versuchs mal. Wär's n Problem für dich mir die div. verwendeten Zeichen bei
PHP:
preg_match("#{table1_anfang}(.*?){table1_ende}#siU", $string, $tabelle);
zu erklären?
Also #, (.*?), #siU

Wäre lieb :) Will ja lernen und nich einfach nur copy'n'paste machen


€dit: also ich bekomm, wenn ich echo $tabelle; mach nur "Array" auf meiner Seite
 
Zuletzt bearbeitet:
Mit echo $tabelle[0][0]; gings nich. Mit echo $tabelle[1]; klappts. Wunderbar :)

Jetzt muss ich nur noch rausfinden wie ich {author}, {hp} usw. aus der Datei durch $author, $hp usw. ersetz

Würdest du da ereg_replace nehmen?

Edit: achja, danke für den Link :)
 
Zurück