Variablenübergabe in phpBB-Template

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Variablenübergabe in phpBB-Template

Beitrag von The real Indigo »

Ich habe eine Tabelle im MySQL angelegt die 5 Datensätze hat.


Id Name
1 Name 1
2 Name 2
3 Name 3
4 Name 4
5 Name 5



Mit folgendem Script kann ich die Daten auch ausgeben:


Code: Alles auswählen

<?php 

$abfrage = "SELECT * FROM phpbb_namen"; 
$ergebnis = mysql_query($abfrage) or die("MySQL Datenbank Fehler:" . mysql_errno().": ".mysql_error()); 

echo " 
<table> 
"; 

while ($reihe = mysql_fetch_object($ergebnis)) 
{ 
echo " 
<tr> 
<td> 
$reihe->Id 
</td> 
<td> 
$reihe->Name 
</td> 
</tr> 
"; 
} 

echo " 
</table> 
"; 

?>

Jetzt möchte ich in einem Template die Daten z.B. mit {Daten} ausgeben.

Das soll dann so aussehen

Name 1
Name 2
Name 3
Name 4
Name 5

Jeweils mit Zeilenumbruch nach einem Wert.


Wie krieg ich das hin ???
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

Danke für den Link...


Für jemand der noch nicht so fit in PHP ist, ist es trotzdem sehr schwer.


Ich habs bis jetzt noch nicht hinbekommen...


Wäre also schön wenn ich noch ein parr Tipps bekommen würde.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

The real Indigo hat geschrieben: Für jemand der noch nicht so fit in PHP ist, ist es trotzdem sehr schwer.
Eher keine allgemeine Programmierlogik hat :wink:
[/quote]

Um mehrere Abschnitte zu wiederholen bedient man sich Templateblöcke
u.A. so

Code: Alles auswählen

<!-- BEGIN irgendwas -->
<tr>
<td>{ID}</td>
<td>{NAME}</td>
</tr>
<!-- END irgendwas -->
und dann
$template->assign_block_vars('irgendwas',array('ID'=>$row['id'],
'NAME'=>$row['name']
));

Um die Beschreibung zu parsen solltest du auf eine fußgesteuerte Schleife zurückgreifen um generell die Beschreibung zu haben

$i=0;
Do
{
if ($i == 0)
//Beschreibung Blöcke anstatt Feld $row['id']......
else
//Datenbankinhalt Blöcke
$i++;
} while( $row=mysql_fetch_assoc($res) );

Das PHPBB Template sollte auch Verschachtelte Blöcke können....Daher könntest du einen Block um den bisherigen Block legen bei dem am Anfang <table> und nachdem Ende des inneren Blockes </table> definiert wird....Diesen Block dann ausserhalb der Schleife übergeben mit einem leeren Array anstatt der Variablen
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

OK, dank dir...


Programmierlogik fehlt mir nicht, aber wer sein Leben lang nur in Basic, Quick Basic, VB6 und VB.Net programmiert hat, der kriegt beim PHP-Syntax einfach nen Kackreiz.

Aber ich versuche mich zu bessern und probiere deine Tipps aus.


Gruß


Indi
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Templates haben nichts mit PHP an sich zu tun :wink:

Sie dienen lediglich dazu den abgefuckten HTML Code aus dem eigentlichen Quelltext rauszuhalten und um noobige Designanpassungen zu erlauben. HTML im Quelltext *würg*

Daher legt man sich da schöne OOP Klassen an die einem dieses Gerümpel erzeugen :wink:
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

Hab obiges jetzt ausprobiert.

Kriegs aber nicht hin, weil ich nicht genau weiss an welcher Stelle in meiner test.php ich das alles einfügen soll.


Hab das ganze jetzt aufgegeben und gemerkt das ich wohl zu blöde dazu bin.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Zeig mal her was du gemacht hast......

Vielleicht brauchst du nur einen Wink mit dem Zaunpfahl geht doch jedem mal so :wink:
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

Den Code kann ich erstmal nicht posten, weil ich auf der Arbeit bin.


Im Template hab ich einfach deinen Eintrag übernommen.

Nur in der PHP Datei wusste ich gar nicht was ich tun sollte. *snief*
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

Hier nochmal mein Code.


Da ich Abends nie auf phpbb.de drauf kommen, kann ich jetzt erst posten.

Code: Alles auswählen

$abfrage = "SELECT * FROM phpbb_name";
$ergebnis = mysql_query($abfrage) or die("MySQL Datenbank Fehler:" . mysql_errno().": ".mysql_error());
while ($reihe = mysql_fetch_object($ergebnis))
{
$template->assign_block_vars('irgendwas',array('Id'=>$row['Id'],'Name'=>$row['Name']));
}

Im Template hab ich es so mal eingefügt und er schreibt auch 5 mal Test, aber sonst nix.

Code: Alles auswählen

<!-- BEGIN irgendwas --> 
<tr> 
<td>{ID}</td> 
<td>{NAME}</td> 
<td>Test</td>
</tr> 
<!-- END irgendwas --> 
Antworten

Zurück zu „Coding & Technik“