Wert wird nicht ausgegeben, ich finde den Fehler nicht
bearbeitet von
Hallo Jörg,
> Eigentlich sonnenklar, was der Code machen soll
Eigentlich gar nicht.
Du lässt eine Schleife über `$arrDay[$myUser][$Datum]['Vorgang']` laufen, was hoffentlich ein Array ist. Die Array-IDs und Werte kommen nach $ID und $value - werden dann aber in der Schleife überhaupt nicht verwendet.
> Unter php 7.4 hat der Code auch funktioniert, aber seit php 8.1 nicht mehr.
Nein. Doch! Ohhhh! Und was sagt uns das jetzt? Was erwartest Du? Was passiert statt dessen? Kommt eine Fehlermeldung? Hast Du die Ausgabe von Fehlermeldungen eingeschaltet?
Ich würde erwarten, dass pro Schleifendurchlauf eine Anzahl von <br> ausgegeben wird und danach in einem Span mit Klasse rot1b der Wert des DaySum-Eintrags. Die Anzahl der <br> ist um eins weniger als die Anzahl der Einträge im Vorgang-Array. Ich würde auch annehmen, dass $AnzahlTermine identisch ist mit `count($arrDay[$myUser][$Datum]['Vorgang']`
Und damit würde ich das, was ich da sehe, so formulieren:
~~~php
while (...):
$filler = $AnzahlTermine > 1 ? str_repeat("<br>", $AnzahlTermine - 1) : "";
?>
<?= $filler ?>
<span class='rot1b'><?= $arrDay[$myUser][$Datum]['DaySum']?></span>
<?php
endwhile;
~~~
*Update: alternative Kontrollstrukturen verwendet und echo vermieden.*
Es ist übrigens eher nicht nötig, die Positionierung mit <br> durchzuführen. Man kann auch über CSS erreichen, dass die Summe am unteren Rand der Zelle steht, die Du da ausfüllst. Für eine Tabellenzelle gibt's die vertical-align:bottom Eigenschaft. Bei einem Grid kann man auch mit align-items bzw. align-self arbeiten.
_Rolf_
--
sumpsi - posui - obstruxi
Wert wird nicht ausgegeben, ich finde den Fehler nicht
bearbeitet von
Hallo Jörg,
> Eigentlich sonnenklar, was der Code machen soll
Eigentlich gar nicht.
Du lässt eine Schleife über `$arrDay[$myUser][$Datum]['Vorgang']` laufen, was hoffentlich ein Array ist. Die Array-IDs und Werte kommen nach $ID und $value - werden dann aber in der Schleife überhaupt nicht verwendet.
> Unter php 7.4 hat der Code auch funktioniert, aber seit php 8.1 nicht mehr.
Nein. Doch! Ohhhh! Und was sagt uns das jetzt? Was erwartest Du? Was passiert statt dessen? Kommt eine Fehlermeldung? Hast Du die Ausgabe von Fehlermeldungen eingeschaltet?
Ich würde erwarten, dass pro Schleifendurchlauf eine Anzahl von <br> ausgegeben wird und danach in einem Span mit Klasse rot1b der Wert des DaySum-Eintrags. Die Anzahl der <br> ist um eins weniger als die Anzahl der Einträge im Vorgang-Array. Ich würde auch annehmen, dass $AnzahlTermine identisch ist mit `count($arrDay[$myUser][$Datum]['Vorgang']`
Und damit würde ich das, was ich da sehe, so formulieren:
~~~php
while (...):
if($AnzahlTermine > 1)
echo str_repeat("<br>", $AnzahlTermine - 1);
?>
<span class='rot1b'><?= $arrDay[$myUser][$Datum]['DaySum']?></span>
<?php
endwhile;
~~~
*Update: alternative Kontrollstrukturen verwendet und echo vermieden. Aber die wiederholten <br> gehen nur per echo*
Es ist übrigens eher nicht nötig, die Positionierung mit <br> durchzuführen. Man kann auch über CSS erreichen, dass die Summe am unteren Rand der Zelle steht, die Du da ausfüllst. Für eine Tabellenzelle gibt's die vertical-align:bottom Eigenschaft. Bei einem Grid kann man auch mit align-items bzw. align-self arbeiten.
_Rolf_
--
sumpsi - posui - obstruxi
Wert wird nicht ausgegeben, ich finde den Fehler nicht
bearbeitet von
Hallo Jörg,
> Eigentlich sonnenklar, was der Code machen soll
Eigentlich gar nicht.
Du lässt eine Schleife über `$arrDay[$myUser][$Datum]['Vorgang']` laufen, was hoffentlich ein Array ist. Die Array-IDs und Werte kommen nach $ID und $value - werden dann aber in der Schleife überhaupt nicht verwendet.
> Unter php 7.4 hat der Code auch funktioniert, aber seit php 8.1 nicht mehr.
Nein. Doch! Ohhhh! Und was sagt uns das jetzt? Was erwartest Du? Was passiert statt dessen? Kommt eine Fehlermeldung? Hast Du die Ausgabe von Fehlermeldungen eingeschaltet?
Ich würde erwarten, dass pro Schleifendurchlauf eine Anzahl von <br> ausgegeben wird und danach in einem Span mit Klasse rot1b der Wert des DaySum-Eintrags. Die Anzahl der <br> ist um eins weniger als die Anzahl der Einträge im Vorgang-Array. Ich würde auch annehmen, dass $AnzahlTermine identisch ist mit `count($arrDay[$myUser][$Datum]['Vorgang']`
Und damit würde ich das, was ich da sehe, so formulieren:
~~~php
while (...) { // Schleife auf
if($AnzahlTermine > 1)
echo str_repeat("<br>", $AnzahlTermine - 1);
echo "<span class='rot1b'>".$arrDay[$myUser][$Datum]['DaySum']."</span>";
} // Schleife zu
~~~
Es ist übrigens nicht unbedingt nötig, die Positionierung mit <br> durchzuführen. Man kann auch über CSS erreichen, dass die Summe am unteren Rand der Zelle steht, die Du da ausfüllst. Für eine Tabellenzelle gibt's die vertical-align:bottom Eigenschaft. Bei einem Grid kann man auch mit align-items bzw. align-self arbeiten.
_Rolf_
--
sumpsi - posui - obstruxi