MCTimotheus18 Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 Hallo Leute, ich habe folgendes Problem: Ich möchte Daten (eine Fußballtabelle) in eine Textdatei speichern. Bisher habe ich das so gelöst, dass ich einfach 16 Textdateien habe, und in jeder ein Verein gespeichert ist. In dieser Art: Eingabe: $fd = fopen ("platz1.dat", "w+"); fwrite ($fd, $name_1); fclose ($fd);[/PHP] [b]Ausgabe:[/b] [PHP]$fd = fopen("platz1.dat","r"); while (!feof($fd)) { $buffer = fgets($fd,4096); echo $buffer; } fclose($fd); Und das habe ich eben 16x durchgeführt. Geht das auch das ich alle 16 Mannschaften in eine Textdatei unterbringe, und irgendwie dem Browser über einen Befehl sage, dass er in der Reihe 1 die erste Zeile der Textdatei auslesen soll, in Reihe 2 dann die 2. Zeile? Die bisherige Tabelle findet Ihr unter TuS Hackenheim Danke und Gruß, MCT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 gehe ich recht in der annahme, das bei dir aktuelle jede platzierung in der Tabelle eine Mannschaft darstellt und in jedem file nicht mehr steht, als der Mannschaftsname und die Punkte? Ich gehe davon aus, das du PHP verwendest?! hm folgender Aufbau: tabelle.txt 1. Mannschaft 2. Mannschaft 3. Mannschaft 4. Mannschaft . . . 16. Mannschaft dann einfach eine function bauen function getTeam( $Platzierung) { // alle zeilen aus der datei in ein array einlesen und nach punkten sortieren // entsprechende Teamdaten vllt auch als Array zurückgeben?! return $teamname; } function getTable() { echo "<table>" for( $i = 1; $i <= 16; $i++) { echo "<tr>"; echo "<td>" .getTeam( $i). "</td>"; echo "</tr>"; } echo "</table>" } falls du mehr daten zu jedem team speichern willst, musst du dir halt einen "DatenTrenner" z.b. "||" wählen und damit dann die Daten der Mannschaft einfach hinten anhängen z.b. tabelle.txt FC Bayern||13 Eintracht||15 . . . Duisburg||12 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 17. September 2004 Autor Teilen Geschrieben 17. September 2004 Ich mache es noch eine Stufe primitiver, ich habe 16 Textdateien mit jeweils einem Mannschaftsnamen und 16 Dateien mit den Punkten *grins* Nein ich bin nicht verrückt, nur mehr konnte ich in PHP nicht :-). Wie kann ich denn einzelne Zeilen aus der *.txt Datei auslesen? Ciao, Timm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 am besten mal ein bisschen schlau machen: http://www.google.com/search?hl=de&ie=UTF-8&q=php+datei+zeilenweise&btnG=Suche&lr= treffer: http://forum.de.selfhtml.org/archiv/2004/4/t77398/ http://forum.de.selfhtml.org/archiv/2000/3/t11254/ http://www.php-resource.de/forum/showthread/t-23073.html Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 17. September 2004 Autor Teilen Geschrieben 17. September 2004 Hi, also ich weiß jetzt wie man Daten aus einer Textdatei zeilenweise ausliest: <? $dateiarray=file("text.txt"); echo $dateiarray[0]; echo $dateiarray[1]; ?> [/PHP] Nun habe ich aber noch 2 Fragen: 1. Wie lese ich z.B. mit einem normalen input Feld einen Datensatz ein, und er fügt Ihn z.B. in der 5. Zeile ein, das ganze soll ja später mal ein Tabellenskript sein, das auslesen klappt ja schonmal, aber mir fällt keine gute Lösung für die Eingabe ein?! 2. Die Frage stelle ich doch erst später ... Ich verzweifel langsam an dem Ding Gruß, Timm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 da musst du mit nem formular arbeiten. schau dich ma nach tutorials um. das geht immer gleich mehr infos gibts am Montag, falls du noch nicht weiter gekommen bist Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 17. September 2004 Autor Teilen Geschrieben 17. September 2004 Ich habe nunmehr folgendes Problem. Ich möchte diese Prozedur in eine for Schleife packen: //Mannschaft 2 $buffer = "$mannschaft2\n"; $fd = fopen("../../../verein/mannschaften/1mannschaft/tabelle/mannschaften.dat","a"); fwrite ($fd, $buffer); fclose ($fd); //Mannschaft 3 $buffer = "$mannschaft3\n"; $fd = fopen("../../../verein/mannschaften/1mannschaft/tabelle/mannschaften.dat","a"); fwrite ($fd, $buffer); fclose ($fd); [/PHP] hierfür habe ich dann folgenden Ansatz: [PHP] for ($i=2; $i<=16; $i++) { $buffer = "$mannschaft$i\n"; $fd = fopen("../../../verein/mannschaften/1mannschaft/tabelle/mannschaften.dat","a"); fwrite ($fd, $buffer); fclose ($fd); Nur leider funktionniert das so nicht, in C++ hätte es so funktioniert, was muss ich ändern damit es klappt? Gruß, MCT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 wie siehts aus, wenn du alle daten in eine Datei reinpackst? z.b. <Mannschaftsname>||<Punkte> . . . dann würde ich einfach das komplette File in ein array auslesen, nach punkte sortieren und danach in einer schleife ausgeben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 soviel Kenntnisse habe ich aber dann auch wieder nicht, um das so zu realisieren, deshalb tendiere ich eher zur oberen Lösung. Gruß, MCT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 soviel Kenntnisse habe ich aber dann auch wieder nicht, um das so zu realisieren, deshalb tendiere ich eher zur oberen Lösung. Gruß, MCT wart ma ab, ich mach schnell nen ansatz inner mittagspause! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 du bist meine Rettung :-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 so: ranking.php <?php function getTeamData() { $aTeamData = array(); $aData = file("teams.txt"); foreach( $aData as $value) { $aTeamAttr = explode( "||", trim( $value)); // TeamId Team-Name Team-Punkte $aTeamData[ $aTeamAttr[0]] = array( $aTeamAttr[1], $aTeamAttr[2]); } return $aTeamData; } function getSortedTeamData() { return ksort( getTeamData()); } function getTeamPoints( $aTeamData, $iTeamId) { return $aTeamData[ $iTeamId][1]; } function setTeamPoints( &$aTeamData, $iTeamId, $iPoints) { $aTeamData[ $iTeamId][1] = $iPoints; } function getTeamName( $aTeamData, $iTeamId) { return $aTeamData[ $iTeamId][0]; } function getTeamName( &$aTeamData, $iTeamId, $sTeamName) { $aTeamData[ $iTeamId][0] = $sTeamName; } function printRankings( $aTeamData) { echo '<table border="1">'; echo '<tr>'; echo '<th>Mannschaft</th>'; echo '<th>Punkte</th>'; echo '</tr>'; foreach( $aTeamData as $iTeamId => $aTeamAttr) { echo '<tr>'; echo '<td>'. $aTeamAttr[0] .'</td>'; echo '<td>'. $aTeamAttr[1] .'</td>'; echo '</tr>'; } echo '</table>'; } ?> [/PHP] Vorraussetzung dafür: eine Datei mit dem Namen "teams.txt" mit folgendem aufbau: <TeamId>||<TeamName>||<TeamPunkte> TeamId, TeamName und TeamPunkte dürfen dann natürlich keine "||" enthalten. Das Trennzeichen kannst du natürlich auch ändern! verusch ma ob du nu weiterkommst Alles ungetestet!! Beispiel seite könnte dann so aussehen: table.php [PHP] include( 'ranking.php'); $aTeamData = getSortedTeamData(); printRankings( $aTeamData); ################ Hab grad was in nem anderen Thread noch gesehen: es gibt einen "ligamanager online". mit dem kannst du eine liga verwalten. einfach alle mannschaften eintragen, dann immer die aktellen ergebnisse eintragen und schon rechnet das skript alle möglichen tabellen, statistiken und fieberkurven aus. ist zwar nicht das wonach du suchst, aber vielleicht kannst du sowas auch gebrauchen. ps: den "ligamanger online" gibt es auch als normales programm. dieses kann dann bilder und html files exportieren... heißt dann "ligamanager 98" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 Habe aber noch allgemein eine Frage, und zwar was stimmt denn hier nicht: for ($i=2; $i<=16; $i++) { $buffer = "$mannschaft$i\n"; $fd = fopen("../../../verein/mannschaften/1mannschaft/tabelle/mannschaften.dat","a"); fwrite ($fd, $buffer); fclose ($fd); } [/PHP] Es geht nur oben um das Variablenvirvar "$mannschaft$i". Brauche solche Dinge noch für mehrere Sachen, kannst du mir eventuell sagen was hier falsch ist? Ciao und 1000 Dank, MCT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 Habe aber noch allgemein eine Frage, und zwar was stimmt denn hier nicht: for ($i=2; $i<=16; $i++) { $buffer = "$mannschaft$i\n"; $fd = fopen("../../../verein/mannschaften/1mannschaft/tabelle/mannschaften.dat","a"); fwrite ($fd, $buffer); fclose ($fd); } [/PHP] Es geht nur oben um das Variablenvirvar "$mannschaft$i". Brauche solche Dinge noch für mehrere Sachen, kannst du mir eventuell sagen was hier falsch ist? Ciao und 1000 Dank, MCT versuch ma so: [PHP] $buffer = $mannschaft . $i ."\n"; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 So meinte ich das nicht, in diesem Fall werden In einem Formular z.B. in 16 Feldern die Namen von 1 bis 16 eingegeben: mannschaft1, mannschaft2, etc. Das soll dann in diesem Skript verarbeitet werden und in eine Text Datei geschrieben werden. Es geht mir ja nur ums Prinzip, das er erst die Variable mannschaft1 in die txt Datei speichert dann die mannschaft2, usw. dies habe ich dann versucht so zu lösen: for ($i=2; $i<=16; $i++) { $buffer = "$mannschaft$i\n"; //Die Variable $i soll einfach die mannschaftsvariable beeinflussen $fd = fopen("../../../verein/mannschaften/1mannschaft/tabelle/mannschaften.dat","a"); fwrite ($fd, $buffer); fclose ($fd); } [/PHP] Ich hoffe du hast mein Problem verstanden, ist schwer in Worte zu fassen oder ich kann mich einfach net ausdrücken . Gruß, MCT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 inwiefern soll die Varibale $i die Varibale $Mannschaft beeinflussen? Meinst du als Array Index? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 Zum Bleifstift: Variable mannschaft1, die vorher im Formular eingelesen wurde, wird mit dem for Schleifen index $i aufgerufen, wenn also $i=1 dann soll die Variable mannschaft1 verarbeitet werden, bei $i=2 soll mannschaft2 verarbeitet werden, deshalb auch meine Überlegung: $buffer = "$mannschaft$i\n"; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 Zum Bleifstift: Variable mannschaft1, die vorher im Formular eingelesen wurde, wird mit dem for Schleifen index $i aufgerufen, wenn also $i=1 dann soll die Variable mannschaft1 verarbeitet werden, bei $i=2 soll mannschaft2 verarbeitet werden, deshalb auch meine Überlegung: $buffer = "$mannschaft$i\n"; das könntest du wie folgt lösen: eval( '$buffer = '.$mannschaft . $i .';'); aber das ist nicht so schön. Du könntest von vorne herrein deine Mannschaften aus dem Formular als Array übergeben. z.b. <input type='text' name='mannschaft[1]'/> <input type='text' name='mannschaft[2]'/> <input type='text' name='mannschaft[3]'/> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 20. September 2004 Autor Teilen Geschrieben 20. September 2004 cool geht das auch, jawoll dann habe ich schon die Lösung für mein nächstes Problem. Vielen Dank mein lieber du hast mir sehr geholfen ! Gruß und noch frohes schaffen, MCT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.