Seite 1 von 2

Übergabe Variablen an template

Verfasst: 01.01.2014 22:06
von extremmichi
Hi an alle,
Ich habe ein Problem mit der Übergabe eines array ans Template.
Und zwar verschwindet immer der erste Datensatz unabhängig
in welcher Reihenfolge das array ausgegeben wird.
Daie Daten des array kommen aus der db
die php sieht so aus:

Code: Alles auswählen

 $sql = 'SELECT * FROM  `phpbb_table`  ORDER BY date DESC LIMIT 15';
        $result = $db->sql_query($sql);
        $table_data = $db->sql_fetchrow($result);

        if (!$table_data)
        {
                trigger_error('SITE_NOT_EXIST');
        }

while($row = $db->sql_fetchrow($result))
{
$table_date= date("d.m.Y,H:i",$row['date']);
    $template->assign_block_vars('table_row', array(
           'VAR1'            => $row['id'],
           'VAR2'           => $row['field1'],
           'VAR3'       => $row['field2'],
           'VAR4'       => $row['field3'],
           'VAR5'       => $table_date,
    ));
}
        $db->sql_freeresult($result);

Die Ausgabe im template geht folgendermassen:

Code: Alles auswählen

<!-- BEGIN table_row -->
      <div class="own_writer">{table_row.VAR3} <br /><span class="own_bla">von </span><span class="name">{table_row.VAR2}</span> am {table_row.VAR5}</div>
      <div class="own_content">{table_row.VAR4}</div>
<br />
<!-- END blog_row -->

Was mache ich falsch?

Danke im Voraus

michi

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:15
von Miriam

Code: Alles auswählen

<!-- BEGIN table_row -->
      Hier eine Menge Code
<!-- END blog_row -->
 
Merkst was?

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:19
von Helmut
Hallo extremmichi,

also die php sieht mal gut aus, daran sollte es nicht liegen.

In deiner html hast du <!-- END blog_row --> drinnen, sollte aber <!-- END table_row --> lauten. Übrigens kommt {table_row.VAR1} in deinem Beispiel garnicht vor.

Gruß Helmut

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:20
von extremmichi
Hallo Miriam,
Bis auf den Schreibfehler nicht ;)
Das ist auch nicht der Fehler
das war jetzt nur beim anonymisieren passiert.
Die Tabelle heisst auch nicht table ;)
Der Fehler ist , dass immer der erste Datensatz verschwindet
egal wie die Reihenfolge der Datenbankabfrage ist.
und da der erste Datensatz immer der neuste ist , ist es doof
wenn genau dieser fehlt.

gruss

michi
@Helmut ich weiss das VAR1 nicht genutzt wird ich weiss aber noch nicht ob ich die brauche deshalb wird sie "ersdtmal " mit übergeben ist ha nur die id

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:25
von Miriam
Dann solltest Du mal Deine DB Query direkt eingeben in die DB und checken, ob die Antworten kommen, die Du erwartest.
Und so klappt das nicht:

Code: Alles auswählen

 $sql = 'SELECT * FROM  `phpbb_table`  ORDER BY date DESC LIMIT 15';
        $result = $db->sql_query($sql);
        $table_data = $db->sql_fetchrow($result);

while($row = $db->sql_fetchrow($result))
{
......
}
        $db->sql_freeresult($result);
 
$table_data ist der erste Datensatz.

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:31
von Helmut
Hallo michi,

ok gut, laut php willst da 15 Datensätze haben, bekommst auch 15 Datensätze?

Mach mal ein echo $row['date']; vor $template...... rein, dann siehst wieviel Datensätze du bekommst.

Gruß Helmut

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:32
von extremmichi
Miriam hat geschrieben:Dann solltest Du mal Deine DB Query direkt eingeben in die DB und checken, ob die Antworten kommen, die Du erwartest.
Schon gecheckt und die sql funtioniert so wie sie soll :(

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:34
von Miriam

Code: Alles auswählen

 $table_data = $db->sql_fetchrow($result); 
Wenn Du wissen willst, ob es Antworten gibt, musst Du es anders abfragen. Mit Deiner Lösung ist der erste Datensatz zwar abgefragt, aber nicht ausgewertet... Zumindest nicht so, wie Du es möchtest.

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:38
von extremmichi
Helmut hat geschrieben:Hallo michi,

ok gut, laut php willst da 15 Datensätze haben, bekommst auch 15 Datensätze?

Mach mal ein echo $row['date']; vor $template...... rein, dann siehst wieviel Datensätze du bekommst.

Gruß Helmut
ich hab mal n "A" ausgeben war Einfacher und du bist auf dem richtigen Weg .
Es kommen nur 14 Datensätze
die sql (wie ich Miriam schon antwortete)
funktioniert in phpmyadmin aber und bringt 15 Datensätze


geuss

michi

Re: Übergabe Variablen an template

Verfasst: 01.01.2014 22:39
von Miriam
Du hast die erste Antwort Deiner Datenabfrage "verschenkt".