arsort() funktioniert nicht ?

FactorX

Mitglied
Hi Leute... ich habe folgendes Problem:
Ich möchte ein Newsscript auf Basis einer einfachen ASCII-Datei schreiben. Allerdings gibt es Schwierigkeiten bei der Ausgabe der Einträge. Wenn ich versuche, das Array mit den einzelnen Zeilen umzudrehen, so dass die aktuellsten Einträge zuerst angezeigt werden, gibt der Parser zurück, dass ich in der Funktion arsort() einen falschen Datentypen verwende. Das kann aber nicht sein, da es ohne arsort() ja funktioniert mit der Ausgabe (schließlich ist es ja dennoch ein assoziatives Array).

Das soll mal die Routine zum auslesen der ASCII Datenbank werden:

PHP:
  if(file_exists($databasename))
  {
    echo "\n<br>\n";
    echo "<p align=\"right\"><a href=\"$PHP_SELF?action=login\">News schreiben</a></p>\n";
    echo "<br>\n";
    $fp = fopen($databasename, "r");
    $row = file($databasename);
    $rowsize = sizeof($row);
    arsort($rowsize);  // Hier soll der Fehler liegen
    for($i=0;$i<$rowsize;$i++)
    {
      $field = explode(",",$row[$i]);
      $field[3] = ereg_replace("&komma;",",",$field[3]);
      $field[4] = ereg_replace("&komma;",",",$field[4]);
      echo "<table width=\"500\" align=\"center\">\n";
      echo " <tr>\n";
      echo "  <td width=\"150\" valign=\"top\">".$field[2]."</td>\n";
      echo "  <td width=\"350\" valign=\"top\">".stripslashes($field[3])."</td>\n";
      echo " </tr>\n";
      echo " <tr>\n";
      echo "  <td colspan=\"2\" valign=\"top\">".stripslashes($field[4])."</td>\n";
      echo " </tr>\n";
      echo " <tr>\n";
      echo "  <td width=\"150\" valign=\"top\"><a href=\"mailto:".$field[1]."\">".$field[0]."</td>\n";
      echo "  <td width=\"350\" valign=\"top\">&nbsp;</td>\n";
      echo " </tr>\n";
      echo "</table>\n";
      echo "<br>\n";
      echo "<br>\n";
    }
    fclose($fp);
 }

Könnt ihr mir sagen, woran das liegt?
 
Zuletzt bearbeitet:
ich hab zwar von textdatein keine ahnung und mit mysql isses einfacher aba ich versuchs mal zu erläutern!

ein datum musst du auch speichern in der textdatei! (mit now(); z.B.

also versuch mal alles in arrays zu lesen, jede zeile (wurde schon zig ma gefragt)! dann machst du einfach eine größe kleiner gleich ordnung udn sorgst dafür das das größte (halt das neuste datum) oben steht?

ich hoffe du hast das verstanden und krist das hin :)
 
Natürlich ist auch ein Datum mit in der Textdatei in jeder Zeile - aber mit deiner größer/kleiner/gleich Ordnung habe ich das noch nicht so ganz verstanden?
Kannst du mal in etwa den Code posten, den du meinst ?!
Und dennoch bin ich der Meinung, dass das auch einfacher gehen muss ;)

edit:
Achso, übrigens ist die Datei schon komplett in nen Array gelesen! Die Funktion file() bewirkt doch genau das! ;)
 
ähm eine frage um es mal zu versuchen!

du hast doch alle in einer text datei, wie machst du php klar was alles von einem script stammt?
machst du das mit id ?
wenn dann eine id kommt beginnt dort ein neuer psot?

also sieht deine textdatei so aus:

ID=1
text=seite neu aufgemacht
datum=2.10.2001
nick=pornex

ID=2
text=seite geupdatet
datum=3.10.2001
nick=pornex

ID=3
usw ?

dann brauchst du doch nur die 3 ganz oben ausgebn, die 2 danach etc ?

aba sorry, dafür kann ich dir kein script gebn, ich habe von textdatein dieser art keine ahnung, hoffe aba das du mit der worterklärung klar kommst und ss selbst schaffst :)
 
Nein es funktioniert so (Man kann es teilweise schon aus meinem gepostetem Quelltext ableiten):

Eine Zeile in der Textdatei enthält sämtliche Spalten für die Daten
Das sieht dann z.B. so aus:

PHP:
$row = "Nickname,Emailadresse,Datum,Text\n";

Man sieht, dass ich das , als Trennzeichen für die einzelnen "Spalten" verwende. Mit der explode() Funktion teile ich den ausgelesenen Datensatz dann wieder auf. Per file() lese ich vorher die ganze Datei in ein assoziatives Array ein.

Aber ich kann trotzdem dieses Array nicht umdrehen, sodass ich die neusten Einträge zuerst angezeigt bekomme. :(
 
Die for Schleife umschreiben! Auf die Idee bin ich auch noch nicht gekommen :)

Ich werd es nachher mal ausprobieren! thx erstmal :)
 

Neue Beiträge

Zurück