Seite 1 von 2

SQL-Abfrage in Tabelle mit Standard-Template

Verfasst: 14.09.2004 20:55
von mcfly
Hallo alle zusammen,

bin gerade dabei eine Art Spielplan für meine Vereinsseite zu erstellen.
Mein Problem ist aber, dass die Inhalte - per phpmyadmin eingefügt - nicht in "body" angezeigt werden.

Mit dem "echo" in einer while-Schleife unter der jetztigen habe ich die Informationen aus der Tabelle auch auslesen können; aber halt über dem Body, der mit "$template->pparse('body');" eingelesen werden soll.

CategoryNumber, CategoryName, Ort und Gegner sind in der lang-Datei auch eingetragen.

Der Code sieht ein wenig wüst aus, da ich schon einiges probiert habe, aber vielleicht kann mir ja jemand weiterhelfen.

spielplan.php

Code: Alles auswählen


<?php

define('IN_PHPBB', true);
$phpbb_root_path = './';

include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);

init_userprefs($userdata);

include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$page_title = 'Spielplan';
$template->set_filenames(array('body' => 'spielplan_body.tpl'));



$sql = "SELECT CategoryNumber, CategoryName, Ort, Gegner FROM PHPBB_GAMEPLANS";
if(!$result = $db->sql_query($sql)) {
              message_die(GENERAL_ERROR, 'Fehler beim Auslesen der Kategorien-Informationen', '', __LINE__, __FILE__, $sql);

$template->assign_vars(array(
        'C_NUMBER' => $lang['CategoryNumber'],
        'C_NAME' => $lang['CategoryName'],
        'C_ORT' => $lang['Ort'],
        'C_ENEMY' => $lang['Gegner'])
);

while($row = $db->sql_fetchrow($result)) {
        $message = $row['CategoryNumber'];
        $template->assign_block_vars('gameplans', array(
        'C_NUMBER' => $message,
        'C_NAME' => $row['CategoryName'],
        'C_ORT' => $row['Ort'],
        'C_ENEMY' => $row['Gegner']))
        }
};

//$db->sql_freeresult($result);

$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);



?>
und:

spielplan_body.tpl

Code: Alles auswählen

<table width="100%" border="0" cellpadding="0" cellspacing="0" class="forumline">
  <tr>
        <th colspan="2" class="thSides" height="25" nowrap="nowrap">&nbsp;{TITLE}&nbsp;</th>
  </tr>
  <!-- Bildergallery -->
 <tr>
 <td><span class="gensmall">{gameplans.C_NUMBER}</span></td>
 <td><span class="gensmall">{gameplans.C_NAME}</span></td>
 <td><span class="gensmall">{gameplans.C_ORT}</span></td>
 <td><span class="gensmall">{gameplans.C_ENEMY}</span></td>
 <td class="row1" colspan="2"><span class="postbody">{gameplans.C_NUMBER}</span>
</tr>
</table>
Formatieren wollte ich später, wenn ich erstmal was in der Hand habe.

Vielen Dank schonmal!

Verfasst: 14.09.2004 21:15
von PhilippK
Du hast keinen gameplans-Block definiert, also kann das auch nicht funktionieren. Schau dir das ggf. mal in der Mitgliederliste an...

Code: Alles auswählen

<!-- BEGIN xxx -->
Schau dir auch mal KB:70 und die Folgebeiträge an.

Gruß, Philipp

Verfasst: 14.09.2004 21:37
von mcfly
habe das jetzt gemacht - doch der Inhalt wird trotzdem noch nicht dargestellt

die Template-Datei sieht jetzt so aus:

Code: Alles auswählen

<table width="100%" border="0" cellpadding="0" cellspacing="0" class="forumline">
<tr>
     <th colspan="2" class="thSides" height="25" nowrap="nowrap">&nbsp;{TITLE}&nbsp;</th>
</tr>
<!-- BEGIN gameplans -->
 <tr>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_NUMBER}&nbsp;</span></td>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_NAME}&nbsp;</span></td>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_ORT}&nbsp;</span></td>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_ENEMY}&nbsp;</span></td>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_NUMBER}&nbsp;</span></td>
 </tr>
<!-- END gameplans -->
</table>

Verfasst: 14.09.2004 21:41
von PhilippK
Was wird denn derzeit dargestellt?

Gruß, Philipp

Verfasst: 14.09.2004 21:46
von mcfly
nur der hellblaue rahmen und der hintergrund des titels - also das wo hier im Post Nachricht steht.

So sieht der Code des Template jetzt aus:

Code: Alles auswählen

<table width="100%" border="0" cellpadding="0" cellspacing="0" class="forumline">
 <tr>
   <th height="25" class="thCornerL" nowrap="nowrap">{C_NUMBER}</th>
   <th class="thTop" nowrap="nowrap">{C_NAME}</th>
   <th class="thTop" nowrap="nowrap">{C_ORT}</th>
   <th class="thCornerR" nowrap="nowrap">{C_ENEMY}</th>
 </tr>
<!-- BEGIN gameplans -->
 <tr>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_NUMBER}&nbsp;</span></td>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_NAME}&nbsp;</span></td>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_ORT}&nbsp;</span></td>
   <td class="{gameplans.ROW_CLASS}" align="center"><span class="gen">&nbsp;{gameplans.C_ENEMY}&nbsp;</span></td>
 </tr>
<!-- END gameplans -->
</table>

Verfasst: 14.09.2004 22:22
von PhilippK
Das ist jetzt schwierig...
Hast du schon mal im Quellcode geschaut, ob zumindest die Zeilen selbst richtig ausgegeben werden?

Gruß, Philipp

Verfasst: 14.09.2004 22:39
von mcfly
also laut Quelltext wir die Tabelle

Code: Alles auswählen

<!-- BEGIN gameplans -->
 <tr>
   <td align="center"><span class="gen">&nbsp;{gameplans.C_NUMBER}&nbsp;</span></td>
   <td align="center"><span class="gen">&nbsp;{gameplans.C_NAME}&nbsp;</span></td>
   <td align="center"><span class="gen">&nbsp;{gameplans.C_ORT}&nbsp;</span></td>
   <td align="center"><span class="gen">&nbsp;{gameplans.C_ENEMY}&nbsp;</span></td>
 </tr>
<!-- END gameplans -->
garnicht generiert, aber der erste Teil des Templates wird abgearbeitet.

Kann es sein, dass ich "gameplans" noch irgendwo anders - außer in der spielplan.php eintragen muss?

Habe es auch mit:

Code: Alles auswählen

<td class="{gameplans.ROW_CLASS}"...
versucht.

Verfasst: 14.09.2004 22:46
von PhilippK
So auf die Schnelle liegt das Problem bei den geschweiften Klammern...

Gruß, Philipp

Verfasst: 14.09.2004 22:51
von mcfly
Gut, werde dann noch mal alle kontrollieren und evtl. nochmal mit anderen vergleichen.

Danke erstmal!

Verfasst: 14.09.2004 22:54
von mcfly
na super, hatte die klammer bei "if" erst unten geschlossen - nicht direkt nach dem message_die.

Und dafür braucht man nun den ganzen Tag.

Auf jeden Fall läuft es jetzt so, wie es soll.

Danke für den Tipp!