php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.09.2005, 17:46  
Gast
 
Beiträge: n/a
Standard Smarty: allgemeine Fragen zum Zusammenspiel mit der Klasse &

Hallo miteinander!
bin gerade ein wenig am testen mit Smarty
Kann ich in Smarty in meiner foreach schleife denn auch eine Zählervariable benutzen um mehrere Arrays zu durchlaufen oder muss ich alles in ein mehrdimensionales basteln?
mit $array[$zaehler++] geht es schonmal nicht, aber ich kann es ja schlecht irgendwo hinschreiben, da ja sonst der Inhalt ausgegeben werden würde, oder?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.09.2005, 18:19  
Benutzer
 
Registriert seit: 06.10.2004
Beiträge: 77
Xfer
Standard

lad dir mal das manual zu smaty herunter, man kann für die schleifen einen key mitlaufen lassen, der zählt dann mit

cu
Xfer
__________________
Xfer ist offline  
Alt 12.09.2005, 18:48  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
lad dir mal das manual zu smaty herunter
Man kann sich das Manual auch online anschauen :P
Corvin ist offline  
Alt 13.09.2005, 11:11  
Benutzer
 
Registriert seit: 06.10.2004
Beiträge: 77
Xfer
Standard

oder so
__________________
Xfer ist offline  
Alt 13.09.2005, 12:30  
Gast
 
Beiträge: n/a
Standard

ja das lese ich auch, aber ich finde es irgendwie blöd, dass da nicht mal ein konkretes kleineres projekt gemacht wurde, um besser rein zu finden...
ich hab das jetzt in Form einer Nachrichtenklasse versucht.
Ich bin mir bei vielen Angelegenheiten noch nicht so sicher, deswegen poste ich den Code-Ausschnitt mal hier und ihr könnt ja mal Kritik rauslassen.
PHP-Code:
<?php
class message {
    
    public 
$message_id;
    public 
$message_title;
    public 
$message_from;
    public 
$message_time;

    public function 
show_list() {
        
$last_messages mysql_query("SELECT id, betreff, sender, timestamp FROM nachrichten WHERE empfaenger = '".strtolower($_SESSION['user'])."' ORDER BY timestamp DESC LIMIT 20 ;");
        while(
$zeile mysql_fetch_array($last_messages)) {
            
$this->message_id[] = $zeile[0];
            
$this->message_title[] = $zeile[1];
            
$this->message_from[] = $zeile[2];
            
$this->message_time[] = $zeile[3];
        }
    }
?>
hier wollte ich eigentlich erst alles in ein 2dimensionales array machen, aber da bekomm ich es mit der Smarty Schleife net ganz so hin..
das ist eigentlich auch schon eine der grundsätzlichen Fragen, macht man sowas eher in ein Array oder in Eigenschaften der Klasse? (hab da noch net so die Erfahrung)
Befehle zum Aufruf:
PHP-Code:
<?php
$smarty 
= new Smarty;
$mess = new message();

$mess->show_list();
$smarty->assign("ids"$mess->message_id);
$smarty->assign("sender"$mess->message_from);
$smarty->assign("betreff"$mess->message_title);
$smarty->assign("pfad"$_SERVER['PHP_SELF'].'?');

$smarty->display('message.tpl');
?>
ich denk ma, dass das sicherlich net die beste Variante ist, deswegen frag ich hier mal auch gezielt, weil meine allgemeine Fragestellung hat mich nicht wirklich weitergebracht (hatte in büchern, foren, google gesucht und auch gefragt, aber nix passendes dazu gefunden)
und jetzt noch das template: (immer im Hinterkopf: hab gerade erst mit Smarty angefangen)
PHP-Code:
<?php
<html>
<
head>
<
title></title>
</
head>
<
body>
<
table width="500" border="0" cellspacing="0" cellpadding="0">
  <
tr>
    <
td colspan="3" width="200" align="center">Betreff</td>
    <
td width="150" align="center">von</td>
    <
td width="150" align="center">Datum</td>
  </
tr>
  {foreach 
from=$ids item=id key=n_counter}
  <
tr>
    <
td width="20">[img]../images/{$img}[/img]</td>
    <
td width="10"></td>
    <
td width="170">[url="{$pfad}&messageid={$id}"]{$betreff[$n_counter]}[/url]</td>
    <
td align="center">{$sender[$n_counter]}</td>
    <
td align="center">{$datum[$n_counter]} {$uhrzeit[$n_counter]}</td>
  </
tr>
  {/foreach}
</
table>
</
body>
</
html>
?>
würde mich freuen, wenn ihr mir gute Ratschläge geben könnt, damit ich mir einen richtigen Stil angewöhnen kann.
Danke im Voraus!
MFG
Günni
 
Alt 13.09.2005, 15:55  
Gast
 
Beiträge: n/a
Standard

hat keiner tipps für mich???
 
Alt 13.09.2005, 22:22  
Erfahrener Benutzer
 
Registriert seit: 12.07.2004
Beiträge: 219
d-jango zeigte ein beschämendes Verhalten in der Vergangenheit
d-jango eine Nachricht über ICQ schicken
Standard

so.. ich würde das ganze folgender maßen lösen, dazu gibt es soweit ich weiß, auch ein beispiel im Smarty-Manual..

Zunächst speicherst du die Werte in einem 2dimensionalen Array ab, wie du es schon vorhattest:

PHP-Code:
<?php
class message {
   
   
/* Ein wichtiges noch nebenbei:
       Instanzvariablen sind in der Objektorientierten Programmierung immer private!!!!
  */
   
public $message_id;
   public 
$message_title;
   public 
$message_from;
   public 
$message_time;
   
   public 
$tabelle = array();
  

   public function 
show_list() {
      
$last_messages mysql_query("SELECT id, betreff, sender, timestamp FROM nachrichten WHERE empfaenger = '".strtolower($_SESSION['user'])."' ORDER BY timestamp DESC LIMIT 20 ;");
      while(
$zeile mysql_fetch_array($last_messages)) {
        
          
// Hier wird das 2dimensionale Array "erzeugt"
         
$this->tabelle[] = $zeile;
         
// ============================
      
}
   } 
?>
jetzt kannst du die Variable $tabelle einfach einfach im php einer variablen im Template zuordnen:

PHP-Code:
<?php
 
    $smarty
->assign('TABELLE',$mess->tabelle);

?>

und im Template kannst du das dann mit 2 verschachtelten foreach-Schleifen abarbeiten:

Code:
...
{foreach from=$TABELLE item=ZEILE key=ZEILENNO}
 <tr>
  {foreach from=$ZEILE key=SPALTE }
  <td>{$ZEILE[$SPALTE]}</td>
  {/foreach}
 </tr>
{/foreach}
...
so... das sollte das sein, was du suchst habs allerdings noch nicht getestet. Können also noch ein paar kleine Fehler drin sein.. sry.. aber ist schon spät :P[/code]
__________________
http://www.fun2stay.de
d-jango ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Smarty + MySQL = immer falsche Ausgabe m0use` PHP Tipps 2006 44 21.11.2008 20:30
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
Was ist Aufgabe des Templates (Smarty), was nicht? agrajag PHP Tipps 2007 8 24.02.2007 13:19
Smarty => 1ste allgemeine Verunsicherung Canni PHP Tipps 2006 7 10.10.2006 17:56
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Instanz einer Klasse in einer anderen Klasse verwenden Buhmann PHP-Fortgeschrittene 7 28.10.2005 23:12
Allgemeine MySQL Fragen Datenbanken 2 29.09.2005 22:24
Smarty Error Simon9990 PHP Tipps 2005-2 8 07.07.2005 09:34
[Erledigt] Allgemeine Anfänger Fragen PHP Tipps 2004-2 5 20.12.2004 14:57
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.