| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

02-12-2002, 16:24
|
|
StephanF
Newbie
|
|
Registriert seit: Nov 2001
Beiträge: 103
|
|
warum letzter Eintrag zuerst??
Hallo,
lese mit folgendem code eine txt-datei aus
PHP-Code:
$dateiname="spieler.txt";
$lines=file($dateiname);
$num=sizeof($lines);
for ($i=count($lines)-1; $i>=0; $i--)
{
$zeile = explode('\n', trim($lines[$i]));
echo "$zeile[0]<br>";
}
Das funktioniert auch, aber der letzte Eintrag in der txt-Datei wird zuerst ausgegeben und der erste zuletzt. Warum?? Habe es schon mit arsort() probiert, bekomme es aber nicht hin.
Noch ne Frage....
Wie kann ich es anstellen, daß so lange die Ausgabe dauert, ich fortlaufend nummerierte Variablen zur Übergabe erhalte?
z.B. var[1]=$zeile[0], var[2]=zeile[0], usw.
Danke für Tips
__________________
Mit freundlichen Grüßen aus Thüringen
Stephan
|

02-12-2002, 16:56
|
|
slarti
Member
|
|
Registriert seit: Jun 2002
Ort: berlin
Beiträge: 448
|
|
...???
for ($i=0,i<count($lines);$i++)
...so is richtig rum.
und mit
$var[$i]=$zeile[0] bekommst du deine variable...
__________________
eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùûä¶³Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");
|

02-12-2002, 17:06
|
|
StephanF
Newbie
|
|
Registriert seit: Nov 2001
Beiträge: 103
|
|
Noch nicht ganz,
kann die Seite mit der Ausgabe nicht darstellen, da er unendlich zählt.
Wo hängst wohl?
__________________
Mit freundlichen Grüßen aus Thüringen
Stephan
|

02-12-2002, 17:31
|
|
StephanF
Newbie
|
|
Registriert seit: Nov 2001
Beiträge: 103
|
|
1. Fehler gefunden,
du hattest einen kleinen Schreibfehler im Code:
nicht
PHP-Code:
($i=0,i<count($lines);$i++)
sondern
PHP-Code:
($i=0;$i<count($lines);$i++)
muß es heißen.
So jetzt mach ich mich an die vars
Danke auch
__________________
Mit freundlichen Grüßen aus Thüringen
Stephan
|

02-12-2002, 17:32
|
|
slarti
Member
|
|
Registriert seit: Jun 2002
Ort: berlin
Beiträge: 448
|
|
scheiB cut&paste
for ($i=0 ;i<count($lines);$i++)
__________________
eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùûä¶³Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");
|

03-12-2002, 00:45
|
|
Titus
PHP Master
|
|
Registriert seit: Jan 2001
Ort: im Rodgau
Beiträge: 4.292
|
|
Re: warum letzter Eintrag zuerst??
Zitat:
Original geschrieben von StephanF
Hallo,
for ($i=count($lines)-1; $i>=0; $i--)
...
der letzte Eintrag in der txt-Datei wird zuerst ausgegeben und der erste zuletzt. Warum??
|
Ja warum nur ... vielleicht weil du das Array von hinten nach vorne abzählst?
for ($i=0; $i<count($lines); $i++)
und schon tut das!
ach übrigens: arsort sortiert das Array absteigend; array_reverse dreht es um.
Und deine letzte Frage solltest du nochmal umformulieren ... wozu willst du was weitergeben?
__________________
mein Sport:  mein Frühstück:  meine Arbeit:
Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.
|

03-12-2002, 10:35
|
|
StephanF
Newbie
|
|
Registriert seit: Nov 2001
Beiträge: 103
|
|
@Titus, danke für die Antwort,
Nochmal zu meiner letzten Frage:
Anhand der Ergebnisse, welche mir das txtfile liefert, soll für jede Ausgabe eine neue Variable entstehen.
Zum Verständnis: Es handelt sich hier um einen Online-Spielplan für Turnierveranstalltungen. Als erstes gibt man jeden Spieler ein, O.K. Dann wird das txt.File ausgelesen und die einzelnen Spieler anhand der Eintragung (deshalb ist die Reihenfolge wichtig) im Turnierplan gesetzt. Möchte man nun aber während einer Sportveranstalltung Spielernamen ändern, so soll das txtfile wiederum ausgelesen werden, und jeder eingetragene Spieler erscheint in einem Inputfeld. Hier kann man nun an dem jeweiligen Platz den Namen überschreiben.
Fazit, ich weiß nicht (jetzt beim erstellen des Dokuments) wieviele Inputfelder mit Vorgabewert aus dem txtfile enstehen. Deshalb brauche ich eine variable Variable, welche sich anhand der Einträge solange um eins erhöht (z.B. feldspieler01, feldspieler02, usw.) bis die Abfrage beendet ist.
Habe für dieses Vorhaben leider kein MySQL zur Hand, dann würde ich es mit zwei Spalten lösen. Eine hätte Defaultangaben zur Namensgebung der Inputfelder, die andere die Spielernamen.
Ich hoffe, das ganze ist nun klarer.
__________________
Mit freundlichen Grüßen aus Thüringen
Stephan
|

03-12-2002, 11:58
|
|
Titus
PHP Master
|
|
Registriert seit: Jan 2001
Ort: im Rodgau
Beiträge: 4.292
|
|
$filename = "feldspieler.txt";
Auslesen:
PHP-Code:
$spieler = file($filename);
echo '<form method="post" action="', $PHP_SELF, '">';
foreach($spieler as $n=>$p)
{
echo $n, '<input type="text" name="spieler[]" value="',
htmlentities($p), '"><br>';
}
echo '<input type="submit"></form>';
Änderungen speichern:
PHP-Code:
if (count($_POST))
{
if ($fp = fopen($filename, 'w'))
{
foreach($_POST['spieler'] as $p)
fputs ($fp, "$p\n");
fclose ($fp);
}
else
echo 'Speichern fehlgeschlagen';
}
__________________
mein Sport:  mein Frühstück:  meine Arbeit:
Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.
|

03-12-2002, 14:20
|
|
StephanF
Newbie
|
|
Registriert seit: Nov 2001
Beiträge: 103
|
|
Das sieht gut aus,
komme leider aber erst morgen wieder dazu.
Danke schon mal vorweg.
__________________
Mit freundlichen Grüßen aus Thüringen
Stephan
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|