Frage zu Tutorial

psifactory

Erfahrenes Mitglied
Hi.
Da ich gerade angefangen habe mich in php einzuarbeiten und ein absoluter Neuling auf diesem gebiet bin habe ich mir mal das Tutorial Template Parser (Anfänger) eingearbeitet.
Dazu hätte ich noch eine Frage. Ist es möglich dass mir bei der Datenbank Abfrage, die mir den text anzeigt eine html seite eingebunden wird :confused:
Hab schon ein paar Sachen probiert aber bis jetzt noch nicht wirklich irgendetwas zu Stande gebracht. Wie gesagt. Bin absoluter Neuling.
 
Also ich habe in meiner Vorlage in einer Tabelle einen Platzhalter namens { TEXT }. Was muss ich da nun in meiner Datenbank eingeben dass mir statt dem Text was im Datenbankfeld steht eine html seite in die Tabelle kommt. Mit einem iframe komm ich da auch nicht weiter weil die komplette Seite scrollbar sein soll. Hoff ich habs diesmal ein wenig besser ausgedrückt. Achja, es geht hier um die seite tsvforst.ts.ohost.de
 
Also du willst an der Stelle, wo der Platzhalter {TEXT} ist keinen Text ausgeben, sondern eine komplette HTML Seite, bin ich soweit richtig?

Also eine Datei kannst du so in eine Variable bekommen:
$variable = implode('',file('PFAD ZUR DATEI'));

Dann kannst du den Platzhalter damit ersetzen.

Ist das dass,was du meinst?
 
Hi

Du möchtest in einem PHP-Script, der irgendwo die Variable $text ausgibt, diese variable mit einem String aus einer DB füllen und diese so ausgeben?
Sorry, nicht falsch verstehen, aber für nen Neuling ist das glaube etwas hoch gegriffen.

Ok, wenn's so ist, probieren wir mal was draus zu machen (könnte jetzt sein, das nur Mist rum kommt *g*)

1. mit der DB connecten (z.B. in der Config.inc.php diese Daten aus einem HT-geschützem Ordner includen)
PHP:
$dbhost = "localhost";                    // Der Hostname Ihrer Datenbank
$dbname = "usr_webX_Y";               // Ihr Datenbank Name
$dbuser = "webXX";                     // Ihr Datenbank-Benutzername
$dbpass = "XXXXXXX";                     // ... und das Datenbank-Passwort


//Mit Datenbank-Server connecten
$outi=@mysql_connect($dbhost, $dbuser, $dbpass);
if (!$outi){
  //Fehler -> ausgeben
   echo  "Fehler ".mysql_errno."<br>Datenbank nicht erreichbar (".mysql_error().")$outi<br>";
}else{
   //Mit Server connectet, jetzt die Datenbank wählen
   $outi=@mysql_select_db($dbname);
   if (!$outi){
      //Fehler -> ausgeben
      echo "Fehler ".mysql_errno."<br>Datenbank nicht anwählbar (".mysql_error().")$outi<br>";
   }
}
if (!$outi){
   //wenn wir ne Fehlermeldung hatten, hier mysql schließen und beenden
   @mysql_close();
   echo "Beende Script<br>";
   die();
}
// Hier sind wir mit dem Server auf die Datenbank verbunden

2.Daten aus einer Tabelle auslesen
PHP:
// vorher mit DB & Tabelle connecten, also oberen Code includen

//Anfrage stellen, wir suchen den Inhalt der Spalte TEXT in der Tabelle TABELLENNAME von dem Datensatz, dessen id 31 ist
$result=mysql_query("SELECT text FROM tabellenname WHERE id='31'");
//Das Ergebnis der Anfrage in ein Array schreiben
$row=mysql_fetch_array($result);
//den Wert auslesen und verarbeiten
$ausgelesenentext=$row['text'];

//also ausgeben
echo $ausgelesenentext;
So würdest Du aus der tabelle 'tabellenname' aus der Zeile, wo die ID 31 ist, die Spalte 'text' auslesen.
Durch das mysql_fetch_array kannst Du die Spaltennamen in dem Array eingeben ... damit liest sich der Code einfacher.
z.B.
PHP:
$result=mysql_query("SELECT name,nachname FROM tabelle_user WHERE id>='31'");
while($row=mysql_fetch_array($result)){
   $name=$row['name'];
   $nachname=$row['nachname'];
   echo "$name $nachname wurde in der Tabelle gefunden<br>";
}
Hier siehst Du, wie man auch mehrere Spalten auf ein Mal auslesen kann, und diese dann auch in variablen schiebt.

:)

Hoffe, ich hab zumindest etwas helfen können, aber man wächst ja an den Herausforderungen, viel Erfolg dabei.

MfG
Posti
 
HTML:
        <tr>
          <td valign="top"> <php $variable = implode('',file('pages/home.html')); ?> </td>
        </tr>

Also so sieht das jetzt aus wenn ich mir den quelltext online anschaue. Woran liegt das dass der php code nicht ausgeführt wird sondern im quelltext auftaucht? hab ich irgendwo einen Fehler gemacht?

@ Posti: Das mit der Datenbank hab ich schon so weit hinbekommen. Aber trotzdem nochmals danke. Ist noch mal ne gute einführung gewesen. Mir gehts im moment nur darum dass ich beim Platzhalter statt einem Text eine html seite reinkriege.
 
Hallo

Ich habe mir den code selber nicht wirklich angeschaut aber

<?php $variable = implode('',file('pages/home.html')); ?>

das ? in <?php wäre für die Ausführung sehr praktisch :-) .

Ob der Code dann macht was du willst ist eine andere Sache.
 
Wenn der PHP Code ineiner HTML Datei ist, bringt dir das eh nichts, da dann der PHP Code nicht geparst wird. Warum arbeitest du nicht mit dem Tamplate System? Da werden noch die Platzhalter angegeben und statt den Platzhalter TEXT in dem Array mit eiunem Text zu belegen, kannst du in dem Array den Platzhalter TEXT mit der Variable belegen, in der du die Seite geladen hats.Also
PHP:
//vorheriger CODE
//Array mit den Platzhaltern (Keys) und den Inhalten. 
$var_array = array("TITLE" => $title, 
                    "CSS" => $css, 
                    "TEXT" => VARIABLE IN DER DIE HTML SEITE GELADEN IST); 

//Initialisierung der Klasse und Parsen des Templates 
$tpl = new parser($template, $var_array);

Oder kapier ich da jetzt irgendwas nicht so ganz?

PS: Das was du da hast, speichert nur die Seite in der Variable $variable. Ausgegeben wird da aber noch nichts.
 
@Fanste
Im letzten Beispiel wurde ein PHP-Tag erstellt (GIBT ES NICHT), es fehlt also 'nur' das ?, damit der Parser erkennt, daß dort PHP-Code folgt. Also PHP eingeleitet wird.
Bei mir beginnt JEDER PHP mit einem
Code:
<?PHP --- ?>
, obwohl auch ein
Code:
<? --- ?>
reichen soll, aber das frisst er mir nicht immer.
Wenn's nur darum geht, eine Variable in einem HTML-Block auszugeben, reicht das Fragezeichen, wenn aber wirklich PHP kommt, sollte das PHP schon drin stehn *eigene Erfahrung*.
Code:
...html-Teil ...xt' value='10'><input type='text' value='<?echo $name;?>'><input type='submit value='ausfüh...

Nochwas: Benutzt Du einen PHP-Editor?
Selber nutze ich den PHP-Writer von A. Weintrub *glaub*.
Das Teil gefällt mir recht gur, außerdem wird der Code ähnlich wie hier im Forum in den PHP-Boxen formatiert angezeigt.
Hilfreich, wenn's mal wieder viele " oder ' gibt.
Einziges Problem, gequotete ' / " erkennt er nicht richtig und zeigt diese dadurch in falscher Farbe an, aber wenn man's weiß, find ich das Teil nur goil.
Kannst ja mal via Google nach dem PHP-Writer suchen lassen (ist FREE oder share).

MfG
Posti
 
Zuletzt bearbeitet:
Das mit dem, das der Code nicht geparst wird, war darauf bezogen, dass er den Code vielleicht in einer HTML (Dateiendung: htm oder html) hat. Dann geht dieser Code auch nicht durch den PHP Parser.

Ich verwende auch einen PHP Editor. Maguma Studio Free. Bin sehr zufrienden damit.

mb fanste

PS: Ich weiß wie man einen PHP Bereich beginnt. Sonst hätte ich hier ja nichts zu suchen :D
 
Zurück