Ich bin mir ziemlich sicher dein Problem gefunden zu haben. Teste bitte erstmal folgendes:
- Mache deine csv - Datei in Notepad oder Editor auf.
- Schau nach, ob genau eine Zeile drinsteht und ob du von dieser aus mit der "pfeil nach unten" - Taste in die nächste Zeile kommst => es ex. der Break und es ist fein und du darfst weiterlesen.
Lösung:
Du machst eine Schleife, in der du ALLE Spalten JEDER Zeile in den spalte[] - Array Speicherst, dadurch ist klar, dass du bei
PHP:
$print = implode(";", $_POST['spalte']) . "\r\n";
auch die gesamten Spalteneinträge in einer Zeile kriegst und er DANACH den Break macht. Verständlich?
Aaaaalso, was du machen musst, ist, dass du die einzelnen Spalten unterscheidest. Spontan fällt mir da folgendes ein:
vor while:
Dann kannst du alle Spalten (hier nur das Beispiel für die erste) folgendermaßen ändern:
PHP:
echo "<td class=\"content2\">" . $dbspalte_1 . "<input type=\"hidden\" name=\"spalte" . $j . "[]\" value=\"". $dbspalte_1 ."\" /></td>";
und dann nach dem <tr> - Tag, aber noch vor der "}" für das Ende der while-Schleife
Dann musst du natürlich auch mit einer doppelten Schleife über die $_POST - Array gehen:
PHP:
$handle = fopen("./dataexport.csv","w");
$j=0;
while (!empty($_POST['spalte'.$j]))
{
$anzahl = count($_POST['spalte'.$j]);
for($i=0;$i<$anzahl;$i++) { //<----- Ich bin mir garnicht sicher, ob du die for- Schleife überhaupt brauchst. Dadurch weist imho doch nur $anzahl - mal $print nen String zu
$print = implode(";", $_POST['spalte'.$j]) . "\r\n";
}
fwrite($handle,$print . "\r\n");
$j++
}
fclose($handle);
So in etwa. Code ist nicht getestet und es geht bestimmt noch einfacher, aber wenn du mal auf die Posting-Zeit schaust, verstehst du, warum ich keine besondere Lust hatte mehr darüber nachzudenken
Ich hoffe aber, dass das Problem klar geworden ist. Vielleicht fällt dir sogar noch ne coolere Lösung ein. Kannst jederzeit Laut geben, wenn was nicht passt.
Viel Erfolg vom Gulasch