Smarty: schleifenproblem

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.
Antworten
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Smarty: schleifenproblem

Beitrag von witzigerkiller »

Hallo, ich möchte gerne Eine Liste mit deren Benutzernamen ausgeben, welche gerade online sind:

Ich benutze dafür die Templates engine SMarty.

Mein bisheriger code sieht so aus:

Navigation.php

Code: Alles auswählen

$user_online = "SELECT `Benutzername` FROM `online`";
$user_online_query = mysql_query($user_online);

$benutzer = mysql_fetch_array($user_online_query);

$smarty->assign('daten',$benutzer);
Und die
Navigation.tpl sieht so aus:

Code: Alles auswählen

    {foreach from=$daten item=User}
    {$User.Benutzername}<br />
    {/foreach}
NUr leider wird dann immer folgendes ausgegeben:
W
W
In der Tabelle online ist nur ein Benutzername vorhanden: Witzigerkiller

aber ich verstehe nicht, warum 2mal W kommt, und warum kein ganzer name drinne steht?!?

Ich habe das alles von diesem Manuel hier:
http://smarty.php.net/manual/de/languag ... oreach.php

Wäre sehr dankbar wenn einer ne idee hätte
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Die Smarty-Funktion

Code: Alles auswählen

{debug}
kann dir bei der Fehlersuche deutlich weiterhelfen. Ein Problem ist sicherlich, dass dir mysql_fetch_array sowohl ein assoziatives als auch ein numerisches Array zurückgibt.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

das debug gibt nichts aus, rein gar nichts.

Wie kann ich das oder wie muss ich das ändern, damit es funktioniert? Bitte helf mir da!

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

Beitrag von Pyramide »

Mach doch mal auf PHP-Seite ein print_r($benutzer), um sicherzustellen, daß der Fehler nicht bereits dort auftritt.
KB:knigge
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

dann wird:

Code: Alles auswählen

Array ( [0] => Witzigerkiller [Benutzername] => Witzigerkiller )
Ausgegeben
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

So, ich habe jetzt in der tpl alles so geändert:

Code: Alles auswählen

    {foreach from=$daten item=User}
    {$daten.Benutzername}<br />
    {/foreach}
Nun wird der komplette Name ausgegeben, aber 2mal.

Wie kann ich das ändern, das er nur einmal angezeigt wird.

Wahrscheinlich liegt es daran:

Code: Alles auswählen

Array ( [0] => Witzigerkiller [Benutzername] => Witzigerkiller )
Aber dann müsste ich in der php datei, irgendwie dieses array in ein nur assoziatives array umwandeln, weil im manuel steht da, das man assoziative braucht.

Hast du da vllt ne ahnung von?
Benutzeravatar
witzigerkiller
Gesperrt
Beiträge: 878
Registriert: 05.02.2005 13:27
Wohnort: Sonthofen

Beitrag von witzigerkiller »

hihi, problem gelöst, aber trotzdem danke:

habe sql abfrage geändert in: mysql_fetch_assoc anstatt array
Antworten

Zurück zu „Coding & Technik“