php & MySQL im template

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
SiMoeBoe
Mitglied
Beiträge: 13
Registriert: 09.01.2010 23:23

php & MySQL im template

Beitrag von SiMoeBoe »

Hi Leute,

Ich bastel grad an einem Forum für meine Schule, bei der ich einer Gruppe die Möglichkeit geben will, Fragen für Steckbriefe, welche dann an alle User gehen, zu definieren.

Ich habe eine neue Seite integriert, jedoch benötige ich innerhalb der steckbrief_body.html php-Abfragen, um ua eine Tabelle mit den Fragen zur bearbeitung aus einer MySQL Tabelle ausfüllen.
Der verwendete Code hat in einem anderen Projekt und auf einer anderen seite bereits funktioniert.
Ich bekomme das ganz nur nicht in das Template eingebaut.

Da eine .html Seite ja kein php verarbeiten kann, habe ich es in .php geändert und auch die entsprechende Datei zum einbinden angepasst.
Jedoch klappt dies immer noch nicht.
Die Frage ist nurn: kann ich überhaupt php innerhalb des Template verwenden, oder nicht, und wenn, dann wie?

Ich hoffe, dies war einigermaßen verständlich, freue mich auf antwort,
MfG,
SiMoeBoe

Nachtrag: Cache habe ich nach jeder Änderung geleert, daran kann es also nicht liegen :wink:
Woran du glaubst, dafür sollst du leben und sterben!
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: php & MySQL im template

Beitrag von Dr.Death »

Hi,

Du solltest PHP und HTML trennen.

Siehe dazu auch: http://wiki.phpbb.com/display/MODDOCS/A ... stom+pages

Deine SQL Abfragen gehören also in die PHP Datei und die Ausgabe in die HTML Seite.
SiMoeBoe
Mitglied
Beiträge: 13
Registriert: 09.01.2010 23:23

Re: php & MySQL im template

Beitrag von SiMoeBoe »

Hallo Dr.Death,
Fänd ich so auch eig am besten, nur leider weiß ich nicht, wie ich dies anstellen soll die Tabelle mit den Daten zu füttern, wenn ich das ganze trenne..
Bisher sieht meine Abfrage zum füllen der Tabelle folgendermaßen aus:

Code: Alles auswählen

<table border="1">
<tr>
<td></td><td>Frage</td><td>Bemerkung</td><td>Ändern</td><td>Löschen</td>
</tr> <?php
$query = "SELECT * FROM sb_fragen ORDER BY id";
$result = mysql_query($query);
$i = 0;
while ($line = mysql_fetch_array($result)) {
  echo "<tr><td><input type='hidden' name='id_tag".$i."' size='3' readonly='readonly' value='".$line[id]."'></td>";
  echo "<td>".$line[frage]."</td>";
  echo "<td>".$line[bemerkung]."</td>";
  echo "<td><input type='submit' name='change' value='&Auml;ndern' onclick='sendewert(aendern+platz+document.neu.id_tag".$i.".value)'></td>";
  echo "<td><input type='submit' name='del' value='L&ouml;schen' onclick='sendewert(loeschen+platz+document.neu.id_tag".$i.".value)'></td></tr>";
  $i++;
}
?>
</table>
Wie bekomme ich die Daten in die html-Seite, wenn die Abfrage woanders stattfindet?
Mit Post/Get wüsste ich nicht, wie ich dies realisieren soll, da ich ja in einer Schleife arbeiten müsste...

In deinem Link steht dazu ja folgendes:

Code: Alles auswählen

/*  

 * basic example of the assign block vars for the templates  

 * This basically will allow you to easily display a block or array of data in a template  

 * this is useful for items such as SQL queries to the database and displaying them in your templates.  

 */ 

foreach ($some_array as $row)  

{  

    $template->assign_block_vars('block_name', array(  

        'EXAMPLE'       => $row['example'],  

        'DEMO'          => $row['demonstration'],  

    ));  

}  
nur verstehe ich folgende Stelle im Template nich, welche ja anscheinend dazu da ist, das ganze dann auszugeben..:

Code: Alles auswählen

<table class="table1" cellspacing="1">  

    <tr>  

        <th>{L_EXAMPLE}</th>  

        <th>{L_DEMO}</th>  

    </tr>  

    <!-- BEGIN block_name -->  

    <tr class="<!-- IF block_name.S_ROW_COUNT is even -->bg1<!-- ELSE -->bg2<!-- ENDIF -->">  

        <td>{block_name.EXAMPLE}</td>  

        <td>{block_name.DEMO}</td>  

    </tr>  

    <!-- END block_name -->  

</table>  

   
Vielen Dank für Hilfe,
MfG,
SiMoeBoe
Zuletzt geändert von SiMoeBoe am 25.10.2010 19:00, insgesamt 2-mal geändert.
Woran du glaubst, dafür sollst du leben und sterben!
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: php & MySQL im template

Beitrag von Dr.Death »

Schau Dir dazu mal die Template Syntax an:

http://wiki.phpbb.com/display/MODDOCS/T ... ate+syntax

Oder lade Dir mal einen phpBB MOD herunter und schau Dir das an einigen MOD Beispielen an.
SiMoeBoe
Mitglied
Beiträge: 13
Registriert: 09.01.2010 23:23

Re: php & MySQL im template

Beitrag von SiMoeBoe »

Ah sry, hab meinen Nachtrag (s letzter Beitrag) paralell zu deiner Antwort erstellt :wink:
Okay, ich lese mal.. Denke aber das ist die Richtung in der ich suche
Vielen Dank schonma
Woran du glaubst, dafür sollst du leben und sterben!
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: php & MySQL im template

Beitrag von Dr.Death »

Mal ebenso hingepinselt ( ungetestet )

PHP Teil:

Code: Alles auswählen

$query = "SELECT * FROM sb_fragen ORDER BY id";
$result = mysql_query($query);
$i = 0;
while ($line = mysql_fetch_array($result)) 
{
    $template->assign_block_vars('ausgabe', array( 
            'COUNTER'             => $i, 
            'LINE_ID'            => $line['id'],
            'LINE_FRAGE'        => $line['frage'],
            'LINE_BEMERKUNG'    => $line['bemerkung'],
        )); 
  $i++;
} 
Template HTML Teil:

Code: Alles auswählen

<table border="1">
<tr>
<td></td><td>Frage</td><td>Bemerkung</td><td>Ändern</td><td>Löschen</td>
</tr> 
<!-- BEGIN ausgabe -->
    <tr>
        <td>
            <input type='hidden' name='id_tag{COUNTER}' size='3' readonly='readonly' value='{LINE_ID}'>
        </td>
        <td>
            {LINE_FRAGE}
        </td>
        <td>
            {LINE_BEMERKUNG}
        </td>
        <td>
            <input type='submit' name='change' value='&Auml;ndern' onclick='sendewert(aendern+platz+document.neu.id_tag".{COUNTER}.".value)'>
        </td>
        <td>
            <input type='submit' name='del' value='L&ouml;schen' onclick='sendewert(loeschen+platz+document.neu.id_tag".{COUNTER}.".value)'>
        </td>
    </tr>
<!-- END ausgabe -->
</table> 
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“