Seite 2 von 2
Verfasst: 04.10.2005 20:03
von mad-manne
Und wie ich schon oben sagte .. deine bisheriger Code addiert immer den Inhalt aus $td[16]!
Da kann nur 0 rauskommen, denn:
Ich vermute mal, dass du in Wirklichkeit immer die
n-te "Zeile" aus dem Array addieren willst? Ansonsten macht eine Addition ja gar keinen Sinn, da dort allerlei Daten im Array sind!
Die wievielte "Zeile" willst du denn jeweils addieren?
--> Ich schätzt mal ob deines bisherigen Konstrukts, dass du jeweils jede 10.te Zeile "brauchst"
NACHTRAG: Ein
Blick auf die Daten lässt allerdings Zweifel daran zu
So long,
Manne.
Verfasst: 04.10.2005 21:44
von Ivan
nö, ganz einfach.
Ich will ab dem 6. Feld jedes 10. dazu addieren.
also 6+16+26+36+46+....
Verstehst du??
Gruß
Ivan
Verfasst: 05.10.2005 09:05
von mad-manne
Dann lass uns doch mal eben noch prüfen, ob in diesen Feldern wirklich deine gewünschten Werte stehen.
Dazu ersetzt du meinen "DEBUG-Code" von gestern hiermit:
Code: Alles auswählen
$fields = count($td);
for ( $loop=5; $loop <$fields; $loop = $loop+10 )
{
echo 'TD-Feldindex# ' . $loop . ' ==> ' . $td[$loop] . '<br />';
}
Wie sieht das dann aus?
weitere Frage .. wieso sind die ersten 9 Felder leer?
Gruss,
Manne.
P.S. Nicht wundern .. das sind schon jeweils die 6.ten Felder, da der Index beim Array mit 0 beginnt

Verfasst: 05.10.2005 12:25
von Ivan
das Ergebnis:
http://web159.server-drome.info/td-feldindex.txt
Der Grund, warum ich die ersten 9 Felder gelöscht habe ist folgender:
Die ersten 9 Felder haben die Überschriften zu den einzelnen Spalten enthalten.
Diese habe ich aber selbst neu geschrieben!
Gruß
Ivan
Verfasst: 05.10.2005 19:37
von Nico Haase
probier mal $ergebnis = $ergebnis + (int)$td[irgendwas] - nimm also den ursprünglichen code und ergänz das (int), dadurch wird der wert im array in einen zahlenwert umgewandelt
Verfasst: 05.10.2005 21:03
von mad-manne
*Nico: der ursprüngliche Code hat an anderer Stelle einen fehler!
Innerhalb der Schleife wird immer der Inhalt der 16.ten "Zeile" des Arrays addiert. Da dieser zufällig 0 ist, kommt auch immer 0 raus
*Ivan:
Sieht denn diese Liste
http://web159.server-drome.info/td-feldindex.txt
so aus, als wären es die Werte die du addieren willst? Ich nehme doch mal an, dass es sich um Highscores oder sonstige erreichte Punkte bei einem Spiel handelt, oder?
Es haben sehr viele nur 0 Punkte! Kommt denn das hin, oder brauchst du bei Betrachtung der obigen Liste doch eher ein anderes Feld?
So long,
Manne.
Verfasst: 05.10.2005 21:21
von Ivan
ja, eigentlich brauch ich ja ab der 16. jedes 10.
Gruß
Ivan
Verfasst: 05.10.2005 21:44
von mad-manne
und wenn du dir jetzt meinen Codeschnipsel anschaust .. kommst du drauf, wo bei dir der Wurm drin war
Wenn du's nicht rausbekommst ... dann verrate ich es dir.
Viel Spass beim forschen,
Manne.
Verfasst: 05.10.2005 22:18
von Ivan
sry, ich find den Fehler net.
Hast du ihn gefunden??
Gruß
Ivan
Verfasst: 07.10.2005 10:17
von mad-manne
Ivan hat geschrieben:Hast du ihn gefunden??
Na klar

... du nutzt eine unnötige Variable innerhalb deiner Schleife, nämlich
$m, obwohl du ja in der Schleife bereits die Schleifenvariable
$q einsetzen könntest, um jeweils die passenden "Zeilen" des Arrays zu deinem Ergebniss zu addieren.
Das wäre aber nicht so schlimm gewesen, da du mit
$m ja eine unötige aber trotzdem funktionierende Zusatzschleifenvariable hast ...
der Fehler liegt im falschen "Startindex", da arrays im Normalfall ab 0 indiziert werden. Deine gewünschten 6-ten Zeilen findest du also in 5, 15, 25 ... usw.
Hier ist also dein Skript leicht umgeschrieben:
Code: Alles auswählen
<html>
<body>
<?php
$table = explode("</table>", $_POST["comment"]);
$td = explode("</td>", $table[2]);
$i = count($td);
unset($td[0], $td[1], $td[2], $td[3], $td[4], $td[5], $td[6], $td[7], $td[8], $td[9]);
echo "<table width='80%' border='1' cellspacing='0'>
<tr>";
for ($n=0; $n<$i; $n++)
{
echo "$td[$n]";
}
echo "</td></tr></table>";
// $m = 6;
// diese Variable ist unnötig und "falsch", da sie dir so wie du sie nutzt
// immer die siebte "Zeile" aus dem Array $td liefert, da Arrays ab 0 indiziert werden !!
// sauberer Stil ist es, Variablen vorher auf einen sinnvollen Startwert zu setzen
$ergebnis = 0;
for ($q=15; $q<$i; $q=$q+10)
{
// $m = $m+10;
// du nutzt jetzt einfach die Schleifenvariable $q als "Zeilen"-Index für $td!
// und dann nutzen wir die Funktion intval(), um "echte" Ganzzahlen aus dem Array zu bekommen
$ergebnis = $ergebnis + intval($td[$q]);
echo "$td[$q]<br>";
}
echo "$ergebnis";
?>
</body>
</html>
Gruss,
Manne.