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.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

recht Simple
while ($reihe=mysql_fetch_object.......)
verwendest du greifst aber auf das Array $row zurück......

Diese Kurzschreibweise der kopfgesteuerten Schleife holt solange was von der DB bis nichts mehr zurückgegeben wird und demnals bricht die Schleife ab sobald hier $reihe false ist :wink:

Daher solltest du $reihe durch $row austauschen.
Und da du Object Möglichkeit verwendest auch auf ein Objekt zugreifen....d.h.
aus $row['Id'] wird eben $row->Id

evtl. solltest du Platzhalter Variablen großschreiben....Bin mir im moment nicht sicher ob case-sensitiv oder nicht bei dieser Templateengine
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

Ich verzweifel weiter...


Hier der neueste Code:

Code: Alles auswählen

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

Code: Alles auswählen

Im Template:
<!-- BEGIN IRGENDWAS -->
{ID}{NAME}TEST<br /><br />
<!-- END IRGENDWAS -->

Die Ausgabe sieht immer noch so aus:

Code: Alles auswählen

TEST

TEST

TEST

TEST

TEST
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

The real Indigo hat geschrieben:{ID}{NAME}TEST<br /><br />
Da muss {blockname.VARIABLE} hin ({VARIABLE} wären globale Variablen - also per assign_var[s] statt assign_block_vars)
KB:knigge
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

Das wäre dann ja so:

Code: Alles auswählen

$abfrage = "SELECT * FROM phpbb_mods";
$ergebnis = mysql_query($abfrage) or die("MySQL Datenbank Fehler:" . mysql_errno().": ".mysql_error());
while ($row = mysql_fetch_object($ergebnis))
{
$template->assign_var('IRGENDWAS',array('ID'=>$row['ID'],'NAME'=>$row['NAME']));
}

Dann krieg ich aber gar keine Ausgabe.
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Code: Alles auswählen

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

Code: Alles auswählen

Im Template:
<!-- BEGIN IRGENDWAS -->
{IRGENDWAS.ID}{IRGENDWAS.NAME}TEST<br /><br />
<!-- END IRGENDWAS -->
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

Ich krieg keine Werte ausgegeben... :-?


Mit dem Testscript von Seite 1 krieg ich die 5 Werte.


Das heisst, die Daten sind in der DB und die Ausgabe klappt.


Mit deiner letzten Verbesserung, Leuchte kommt auch nur

Code: Alles auswählen

TEST

TEST

TEST

TEST

TEST

Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Code: Alles auswählen

$template->assign_block_vars('IRGENDWAS',array('ID'=>$row->ID,'NAME'=>$row->NAME));
?

Die tpl-Datei bleibt so
The real Indigo
Mitglied
Beiträge: 235
Registriert: 03.08.2004 12:00
Wohnort: Ruhrpott
Kontaktdaten:

Beitrag von The real Indigo »

Jaaaaaaaaa...


Super Danke... *freu*


Jetzt kann ich auch in Ruhe schlafen...
Antworten

Zurück zu „Coding & Technik“