PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle in .txt Datei speichern und auslesen.


Geldmann3
2009-09-07, 21:25:50
Ich möchte gerne eine Tabelle in die man Inhalt einfügen kann. Wenn man die Seite dann erneut aufruft, soll der eingefügte Inhalt wieder an der richtigen Stelle erscheinen. Das ganze soll mit PHP in einer .txt Datei gespeichert werden.

Ich habe bereits ein Script mit dem ich Inhalt durch ein Formularfeld speichern kann. Später wird der eingegebene Inhalt dann wieder aufgerufen. Eigentlich würde ich es mit der Tabelle auch so machen, jedoch hat diese 120 Zeilen. Ich müsste das Script dann für jede einzelne Zeile erstellen. Das dauert ewig. Kennt jemand einen Weg wie das schneller geht? Eventuell irgendwie alle Eingaben in der Tabelle mit einem großen Script speichern anstatt jede einzeln mit vielen kleinen Script Fetzen.

Kleiner Ausschnitt wie ich es bisher mit einzelnen Feldern mache.
<?php
/* Hier die eingaben für das Formular
Geldmann3 */

if ($_POST) {
// Daten speichern
$text = "Eingabe1 = " . $_POST["Eingabe1"] . "\n" .
"Eingabe2 = " . $_POST["Eingabe2"] . "\n" .
"Eingabe3 = " . $_POST["E3"] . "\n";

// Formularangaben speichern
$file = "angaben.txt";
$fp = fOpen($file,"a");
fPuts($fp, $text);
fClose ($fp);
echo "<h4>Danke für deine Eingabe!</h4>";
}

// Formularangaben einlesen
foreach (file("angaben.txt") as $zeile) {
if (strstr($zeile, " = ")) {
list($variable, $value) = explode(" = ", $zeile);
$$variable = chop($value);
}
}

// Formular (Formularangaben ausgeben)
echo <<<EOT
<form action="$_SERVER[PHP_SELF]" method="post">
<p> Bitte um Eingabe <input type="text" name="Eingabe1" value="Eingabe1"> </p>
<p> Bitte um eingabe <input type="text" name="23" value="Eingabe2"> </p>
<p> Bitte um eingabe: <input type="text" name="23" value="E3" type="text">
</p>
<p> <input type="submit" value="hinzufügen"> </p>
</form>
EOT;
?>

</fieldset>

Unfug
2009-09-07, 21:48:45
Was Du brauchst ist ein 2D-Array.
Damit könntest Du die Tabelle wie hier füllen:
http://www.phptt.de/showschnipsel.php?kat=2&id=12

So könntest Du Deine TXT Datei wie eine CSV Datei aufbauen
Zeile0Eintrag0;Zeile0Eintrag1;Zeile0Eintrag2
Zeile1Eintrag0;Zeile1Eintrag1;Zeile1Eintrag2

Es gibt mit Sicherheit auch dafür schon vorgegebenen Skripte um "CSV 2 Array" oder vielleicht sogar "CSV 2 Table" zu machen.

Geldmann3
2009-09-07, 23:46:22
Klingt sehr interessant, ich sehe mir das mal an.
Nachtrag:
Wow übrigens sehr hilfreiche Seite die du da gepostet hast. Da gibt es viel rund um PHP.

ezzemm
2009-09-08, 07:23:58
Um eine CSV-Datei zu importieren kann man folgendes Script nehmen:

$file = fopen($_FILES['Datei']['tmp_name'],"r");
while (( $data = fgetcsv ($file, 1000, ";")) !== false ) {
//PHP-Code; Daten werden Zeilenweise ausgelesen, Spalten heissen $data[0], $data[1], etc...
}
fclose ($file);