While-Schleife - Daten vergleichen
-
- Mitglied
- Beiträge: 138
- Registriert: 23.01.2005 16:09
- Kontaktdaten:
While-Schleife - Daten vergleichen
Hallo,
ich habe ein kleines Problem mit einer while-Schleife. Ich möchte eine Variable mit einer aus dem letzten durchlauf vergleichen. Mein Problem ist nicht das vergleichen, sondern wie ich die Variable vom letzten Durchlauf beim jetzigen Durchlauf zur Verfügung habe. Ist das überhaupt möglich???
SKYSURFER
ich habe ein kleines Problem mit einer while-Schleife. Ich möchte eine Variable mit einer aus dem letzten durchlauf vergleichen. Mein Problem ist nicht das vergleichen, sondern wie ich die Variable vom letzten Durchlauf beim jetzigen Durchlauf zur Verfügung habe. Ist das überhaupt möglich???
SKYSURFER
- Olli Oberhausen
- Mitglied
- Beiträge: 561
- Registriert: 22.10.2004 01:03
- Wohnort: Oberhausen NRW
- Kontaktdaten:
Übergeb die aktuelle variable doch einfach an eine andere.
$letzte = $aktuelle;
Die hast du beim nächsten durchlauf immernoch mit den alten werten.
Olli
$letzte = $aktuelle;
Die hast du beim nächsten durchlauf immernoch mit den alten werten.
Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Wo ist das Problem?
Eine while Schleife ändert von sich aus ja keine Variablen. Außerdem kannst du die Variable doch einfach kurz zwischenspeichern.
Beispiel:
Eine while Schleife ändert von sich aus ja keine Variablen. Außerdem kannst du die Variable doch einfach kurz zwischenspeichern.
Beispiel:
Code: Alles auswählen
$var = 0;
while($var < 40)
{
$var_alt = $var;
$var++;
if($var_alt % 2 == $var % 3)
{
echo "\n<br>x = $var<br>x-1 = $var_alt <br><br> Es gilt: Der Rest der Division (x-1)/2 ist gleich dem Rest der Division x/3";
}
}
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
-
- Mitglied
- Beiträge: 138
- Registriert: 23.01.2005 16:09
- Kontaktdaten:
-
- Mitglied
- Beiträge: 138
- Registriert: 23.01.2005 16:09
- Kontaktdaten:
Hallo,
leider klappt das noch nicht so wie ich mir das vorgestellt hatte. Hier mal mein quellcode:
Template
Bei der Ausgabe bekomme ich dann ein falsches Ergebnis.
Es ist so gedacht, dass alle Kategorien unter dem Dazugehörigen Jahr angezeigt werden. Also so:
2006
1
2
3
4
2005
5
6
7
...
aber bei mir wird das Ganze so angezeigt:
2006
2005
1
2
3
4
5
...
Warum???
SKYSURFER
leider klappt das noch nicht so wie ich mir das vorgestellt hatte. Hier mal mein quellcode:
Code: Alles auswählen
...
$abfrage = "SELECT * FROM $tabelle_kat ORDER BY sortierung ASC";
$ergebnis = mysql_query($abfrage);
$datumjetzt = time();
$jahralt = strftime("Y",$datumjetzt);
$num = 1;
while($row = mysql_fetch_object($ergebnis))
{
$id = $row->id;
$titel = $row->titel;
$datum = $row->datum;
$datum_format = "%d.%m.%Y";
$datum1 = strftime($datum_format,$datum);
$sortierung = $row->sortierung;
$link = append_sid("bilder.$phpEx?action=gal&id=$row->id");
$jahreszahl = "%Y";
$jahrneu = strftime($jahreszahl,$datum);
if( $num == 1)
{
$template->assign_block_vars('JAHR', array(
'JAHR' => $jahrneu,
));
$template->assign_block_vars('KAT', array(
'NUM' => $NUM,
'TITEL' => $titel,
'DATUM' => $datum1,
'SORTIERUNG' => $sortierung,
'U_LINK' => $link,
'monat' => $monat,
));
}
else
{
if ( $jahrneu == $jahralt)
{
$template->assign_block_vars('KAT', array(
'NUM' => $NUM,
'TITEL' => $titel,
'DATUM' => $datum1,
'SORTIERUNG' => $sortierung,
'U_LINK' => $link,
'monat' => $monat,
));
}
else
{
$template->assign_block_vars('JAHR', array(
'JAHR' => $jahrneu,
));
$template->assign_block_vars('KAT', array(
'NUM' => $NUM,
'TITEL' => $titel,
'DATUM' => $datum1,
'SORTIERUNG' => $sortierung,
'U_LINK' => $link,
'monat' => $monat,
));
}
}
$num++;
$jahralt = $jahrneu;
}//ende while
...
Code: Alles auswählen
...
<table width="370" cellpadding="0" cellspacing="0" border="1">
<!-- BEGIN JAHR -->
<tr>
<td class="text" height="28" colspan="4">{JAHR.JAHR}</td>
</tr>
<!-- END JAHR -->
<!-- BEGIN KAT -->
<tr>
<td class="text" height="28">{KAT.NUM}</td>
<td class="text" height="28"><a href="{KAT.U_LINK}">{KAT.TITEL}</a></td>
<td class="text" height="28">{KAT.SORTIERUNG}</td>
<td class="text" height="28">{KAT.DATUM}</td>
</tr>
<!-- END KAT -->
</table>
...
Es ist so gedacht, dass alle Kategorien unter dem Dazugehörigen Jahr angezeigt werden. Also so:
2006
1
2
3
4
2005
5
6
7
...
aber bei mir wird das Ganze so angezeigt:
2006
2005
1
2
3
4
5
...
Warum???
SKYSURFER
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Um das zu machen musst du die Blöcke verschachteln.
Du kannst dir jeden Block vorstellen wie eine Schleife. Die wird dann so lange durchlaufen wie es noch Daten gibt die dazu gehören. 2005 und 2006 gehören zur Schleife "Jahr", die restlichen aber zur Schleife "kat". Da du beide Schleifen hintereinander aufführst werden erst die Daten von Jahr und dann die von Kat ausgegeben.
Eine korrekte Verschachtelung sähe so aus:
Die Zuweisungen im PHP müssen dann so aussehen:
Du kannst dir jeden Block vorstellen wie eine Schleife. Die wird dann so lange durchlaufen wie es noch Daten gibt die dazu gehören. 2005 und 2006 gehören zur Schleife "Jahr", die restlichen aber zur Schleife "kat". Da du beide Schleifen hintereinander aufführst werden erst die Daten von Jahr und dann die von Kat ausgegeben.
Eine korrekte Verschachtelung sähe so aus:
Code: Alles auswählen
Template:
<!-- BEGIN jahr -->
{jahr.JAHR}
<!-- BEGIN jahr.kat -->
{jahr.kat.ERSTE_VARIABLE}
{jahr.kat.ZWEITE_VARIABLE}
<!-- END jahr.kat -->
<!-- END jahr -->
Code: Alles auswählen
$template->assign_block_vars('jahr',array(...));
$template->assign_block_vars('jahr.kat',array(...));
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
-
- Mitglied
- Beiträge: 138
- Registriert: 23.01.2005 16:09
- Kontaktdaten: