Schleifen in HTML Tabellen

Ich kenn die Meldung nicht, ist mir noch nie über den Weg gelaufen. Daher kann ich auch nicht zuordnen, bei welcher Funktion genau das auf tritt. Vermutung: number_format(). Sicher bin ich mir da aber nicht.

Da du die Stelle im Sourcecode kennst, wäre es noch gut, wenn du

- Die Zeile in der die Anmerkung auftritt, postest
- In der Zeile alle vorkommenden Variablen mittles var_dump() ausgibst. Falls du keine Idee hast, wie das geht, hier ein Beispiel:

PHP:
....
// Diese Zeile hab ich willkürlich aus deinem Code kopiert
echo "<td class=\"right\">" .number_format($kaufwert[$i], 2, ',', '.')."</td>\n"; // Angenommen hier tritt die Notice auf
echo "<pre>";
var_dump($kaufwert[$i], $i);
echo "</pre>";
....

Upps, da hab ich dein Posting nicht zu Ende gelesen, und du hast es am Ende sogar selbst gesagt, das es number_format ist.
 
Hallo,

der Fehler betrifft diese Zeile.

Code:
echo "<td class=\"right\">" .number_format($file[$i], 2, ',', '.')."</td>\n";

Code:
//var_dump Ausgabe
string(7) "44.34
"
int(0)
string(7) "41.25
"
int(1)
string(7) "52.61
"
int(2)
string(7) "19.33
"
int(3)
string(5) "38.07"
int(4)

Diese Kurse werden aus der CSV Datei genommen. Number_format wandelt die doch nur in eine Zahl mit Komma um.

MFG
Silvio
 
Komicherweise hat der Wert offensichtlich ein New-Line am Ende. Vielleicht kannst du den String vorher korrekt trimmen und alle nicht-numerischen Werte entfernen. Es könnte über den kurzen Weg funktionieren:

PHP:
echo "<td class=\"right\">" .number_format( floatval($file[$i]), 2, ',', '.')."</td>\n";

Ansonsten müsstest du tatsächlich alles nicht-numerische bspw. mittels regulärem Ausdruck oder filter_var() entfernen:

PHP:
echo "<td class=\"right\">" .number_format(filter_var($file[$i], FILTER_NUMBER_FLOAT), 2, ',', '.')."</td>\n";
 
Hallo,

jetzt bin ich baff. Wie hast du das jetzt erkannt? Ist das, weil die " in einer neuen Zeile gehen?

MFG
Silvio

PS: echo "<td class=\"right\">" .number_format( floatval($file[$i]), 2, ',', '.')."</td>\n"; < = keine Meldung
 
Hallo,

aha okay Das merke ich mir mal, ich nutze öfter print_r. Aber so mit var_dump nach dem du das gesagt hast und ich mir mal die Befehle angesehen habe ist es verständlich.

Das ist echt mein größtes Problem, ich habe schon eine Menge Sachen gemacht, ich glaube nur wenn man die Sprache in eigenen Vorhaben einsetzt lernt man die Sprache auch, aber so oft habe ich keine Log und keinen Fehler das ich nicht weiß wo nach ich suchen muss. Das Beispiel wird mir sicher helfen.

Ich musste mir diese Woche anhören das ich den Code doch debuggen sollte. Ich habe mir Xdebug einmal installiert, aber was bringt mir das den? Er zeigt mir die Seite an oder nicht. Auch in der Log schreibt er nicht wirklich etwas außer die Standard Texte Copyright etc. Wie debuggt Ihr? Oder ist var_dump ausreichend wenn man es richtig interpretieren kann.

Danke für deine Hilfestellung.

MFG
Silvio
 
Abend,

@saftmeister
danke für die Tipps, muss mich wohl doch mehr mit Xdebug beschäftigen, allerdings habe ich zwar Eclipse installiert aber das ist schon ein mächtiges Programm. Ich nutze zurzeit WeBuilder von Blumenthals, weil ich die Editoren schon seit Jahren verwende. Hat zwar auch eine Debug Funktion, aber scheint wohl Xdebug nicht richtig auszuführen.

@Martin_N
Die IF Anweisungen sind mir bekannt, im genannten Beispiel funktioniert das nicht. Scheint wohl mit csv Arrays nicht klar zu kommen.

PHP:
if($gewinn > 0) 
{
echo "<td class=\"true\">" .number_format( floatval($dax_change[$i]), 2, ',', '.'). "</td>\n";
}

else 
{
echo "<td class=\"false\">" .number_format( floatval($dax_change[$i]), 2, ',', '.'). "</td>\n";
}

Wenn die Arrays manuell gefüllt sind, kein Problem, csv macht er nicht. Mal in den Array Funktionen stöbern ob hier etwas passt.


MFG
Silvio
 
Zurück