[PHP5] löschen von daten aus datei (etwas eigensinnige methode)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP5] löschen von daten aus datei (etwas eigensinnige methode)

    hallo leute,
    einige unter euch werden bestimmt lachen, aber für mich als anfäger ist das eine recht problematische sache!
    ich habe ein script gebastelt, welches daten aus einer ASCII-Datenbank einliest, in ein multidimensionales array liest sortiert und eigentlich auch wieder ausgeben sollte! Ach ja und es soll eine bestimmte zeile gelöscht werden!

    hier mal das script-->>
    PHP-Code:
    $num $HTTP_POST_VARS['num'];

    $datei "../../data/nws.dat";
    $inhalt file($datei);
    $anzahl count($inhalt);

    for (
    $i =0;$i $anzahl;$i++) {
    $eintrag explode("°°",$inhalt[$i]);
    $val["db_key"][$i]=$eintrag[0];
    $val["db_datum"][$i]=$eintrag[1];
    $val["db_title"][$i]=$eintrag[2];
    $val["db_entry"][$i]=$eintrag[3];
    $val["db_lnk"][$i]=$eintrag[4];
    }

    //ARRAY NACH KEY SORTIEREN
    array_multisort($val["db_key"],SORT_REGULAR,SORT_DESC,$val["db_datum"],$val["db_title"],$val["db_entry"],$val["db_lnk"]);

    //löschen
    unset($val["db_key"][$num]);
    unset(
    $val["db_datum"][$num]);
    unset(
    $val["db_title"][$num]);
    unset(
    $val["db_entry"][$num]);
    unset(
    $val["db_lnk"][$num]);


    //datei löschen
    unlink ($datei);

    //neuen Inhalt nach löschen zählen
    $newanzahl count($val["db_key"]);

    //Daten aus Array in strings schreiben
    for ($i=0;$i<$newanzahl;$i++) {
    $string[$i] = $val["db_key"][$i]."°°".$val["db_datum"][$i]."°°".$val["db_title"][$i]."°°".$val["db_entry"][$i]."°°".$val["db_lnk"][$i]."\n";
    }

    //Strings in neue Datei schreiben
    $fp fopen($datei"w+");
    for (
    $i=0;$i<$newanzahl$i++) {
    fwrite($fp"$string[$i]");
    }
    echo (
    "&best=ok&"); 
    die zeilen nummer ($num) bekommt es aus einer flashdatei und die is eigentlich auch richtig! mein problem liegt -glaube ich zumindest- beim schreiben der neuen daten!

    vor dem schreiben steht folgende in der datei:
    20060202°°02.02.2006°°aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa°°aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa a°°\n
    nur mal als beispiel -->> es sind mehrere zeilen, der selben art drin!

    nach dem schreiben ist nur noch die erste zeile da! bzw der rest sieht so aus:
    °°°°°°\n
    ich weis zwar schon, dass dies meine trennzeichen sind! aber warum sind dazwichen keine infos mehr!

    kann mir bitte mal jemand auf die sprünge helfen!!!!
    ich glaub mittlerweile echt schon, dass ich zu blöd bin!

    vielen dank schonmal im voraus!
    liebe grüße
    sebastian

  • #2
    Brich doch bitte deinen Code gemäß den Regeln um!
    http://www.php-resource.de/forum/sho...threadid=50454

    Kommentar


    • #3
      tut mir leid, hab ich in der eile vergessen!
      habs einfach aus dem dv kopiert...sorry!

      ich weis nun aber zumindest schon, dass es nich am schreiben liegt!
      das problem muss irgendwo dazwischen liegen!
      hab jetz auch den bereich //in string schreiben// rausgenommen und
      lasse das script die "anordnung" mit allen trennzeichen direkt in die
      datei schreiben!
      mit fwrite($fp, $val["db_key"][$i]."°°".$val.....................

      ich geh noch kautt!!

      lg
      sebastian

      Kommentar


      • #4
        Der Code ist leider immernoch zum scrollen - und das bei 1280x1024 ...

        Und bitte bitte bitte - immer den aktuellsten Code reinstellen und NICHT schreiben was du geändert hast! (Das macht uns 1. mehr arbeit und 2. können wir die fehler nur hellsehen wenn unsere Glaskugel grade nicht in der Werkstatt ist, und soweit ich weiß sind die Glaskugeln der Leute hier irgendwie chronisch kaputt...!)


        PS: $HTTP_POST_VARS ist veraltet. Benutze anstelle dessen $_POST
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          Also Leute,
          ich finde es echt bedenkenswert, wie man hier auf Hilfegesuche reagiert!
          Dumme Sprüche wie z.B. "meine Glaskugel ist in der Werkstatt"
          und "$HTTP_POST_VARS ist veraltet" hätte ich mir auch in jedem
          Schülerforum holen können!

          Ich hab ja schon ne menge erlebt und bin auch in anderen Foren
          angemeldet! Aber sowas is ja wohl der Hammer!

          Ich kann natürlich nicht erwarten, dass sich jeder sofort auf meinen
          Threat wirft und sich darum prügelt mir helfen zu dürfen und ich
          hätte auch kein Problem damit gehabt, wenn ich keine Antworten
          bekommen hätte, aber das schlägt dem Fass ja wohl den Boden
          aus!

          Ich beschäftige mich normalerweise mit Programmiersprachen wie
          Lingo oder Actionscript und bin auf dem Gebiet -ich möchte mal
          sagen- besser als die meisten anderen...schon alleine wegen
          meinem Beruf! Aber ich würde nie auf die dumme idee kommen, so
          auf Hilfegesuche zu reagieren und mal eben den Coolen
          Programmierer raushängen zu lassen, der Hilfesuchende nur auf die
          Schippe nimmt!

          Auch die Leute, die sich in den zugehörigen Entwicklerforen
          ernsthaft und professionell mit diesen Sprachen auseinandersetzen
          - und schon auf Grund des Kaufpreises der Software etwas rarer
          sind - , würden auf solschen Scheiß nich kommen!

          [COLOR=crimson]Wenn das hie ein Admin liest! Meinen Account
          könnt ihr getrost löschen![/COLOR]
          ich habe nämlich keinen Bock auf Typen, die sich für was besseres
          halten, nur weil sie eine Sprache besser können als andere! Sowas
          bringt die ganze Programmiererszene in verruf!

          Guten Tag!

          Kommentar


          • #6
            Auch auf die Gefahr hin, dass du mich gleich in die selbe Schublade steckst:

            Wenn du wirklich so oft in Programmierer-Foren bist, sollte dir die Alliteration "Glaskugel" nicht neu sein, denn sie ist ziemlich weit verbreitet. Shurakais Formulierung finde ich übrigens in keinster Weise unangemessen und was er sagte - nämlich dass du die Forenregeln beachten, den Lesern das Helfen nicht unnötig schwer machen und zukünftige Probleme schon heute vermeiden solltest - war angebracht und hilfreich.

            Deine Reaktion war dagegen überzogen, cholerisch und in Teilen Angeberei!

            Letzteres möchte ich auch begründen: Es ist belanglos, welche Sprachen du kannst, aber du wirfst sie nicht nur in der Manier "mein Haus, mein Auto, mein Boot" aufs Tableau, sondern kehrst auch noch heraus, dass diese Qualifikation dir einen Status verleiht.
            Mit Programmiererszene meinst du dann sicherlich all jene, die ebenfalls einen solchen Status haben. Falls du da nur so Leute wie dich dazuzählst, bin ich froh, ausgeschlossen zu sein!


            PS: Dieser Thread ist keine Bedrohung.

            Kommentar


            • #7
              ich meinte damit keinesfalls, das es bestimmte sprachen gibt - oder
              geben sollte - , die besser dastehen als andere! genau das gegenteil hab ich eigentlich damit bezweckt!
              ich wollte mich damit auch nicht in den himmel heben oder angeben,
              sondern darauf verweisen, dass es halt leute gibt, die können das eine besser und wiederum andere, die können etwas anderes
              besser!

              man sollte daher nicht nur mit floskel antworten wie z.b. $HTTP_POST_VARS ist veraltet" sondern wenn man nicht helfen kann od. will dies auch nicht zu tun! denn, auch wenn es veraltet
              ist...es funzt und trägt in keinem fall zu meinem problem bei!

              und für die sache mit der gplatzten formatierung hab ich mich oben
              entschuldigt---> ich habe es also wahrgenommen!

              und um auch das letzte missverständniss aus der welt zu räumen!
              meine auffassung der szene ist nicht, nur diejenigen dazu zu zählen
              und zu respektieren, die eine sprache können und auf einem gebiet
              oder mehreren gebieten gut sind!! sondern mein respekt gilt auch
              all jenen, die lernwillig sind! und ich meinte mit "in verruf bringen"
              nur diejenigen, die auf ihrem wissen sitzen bleiben und dies auch raushängen lassen!

              Kommentar


              • #8
                Immer langsam mit den jungen Pferden und mit Programmier"szene" und so Ich glaub übrigens, daß sich hier die wenigsten als Teil einer Szene sehen. Also ich zumindest nicht. Ich hab mit diesem Teil meiner Arbeit großen Spaß und bezahle meine Miete damit. Mehr nicht.

                man sollte daher nicht nur mit floskel antworten wie z.b. $HTTP_POST_VARS ist veraltet
                Das ist keine Floskel, sondern ein völlig korrekter Hinweis. Du stehst nämlich dumm da, wenn das ganze in einer der nächsten Versionen nicht mehr funktioniert.

                und für die sache mit der gplatzten formatierung hab ich mich oben
                entschuldigt---> ich habe es also wahrgenommen!
                Aber nicht geändert. Ich kriege immer noch Scrollbalken.

                Sondern mein respekt gilt auch
                all jenen, die lernwillig sind!
                Meiner auch.
                Also brich Deinen Code um
                Zuletzt geändert von pekka; 22.01.2006, 15:16.

                Kommentar


                • #9
                  Hallo somebody1981,

                  da du dich direkt auf mich beziehst möchte ich dir auch etwas dazu sagen.

                  Zunächst einmal: Hier sind sehr viele die sehr gerne helfen. Wenn wir das nicht täten, würden wir sicherlich nicht hier sein und unsere Zeit damit "vergeuden" anderen zu helfen, sondern anstelle dessen arbeiten und Geld verdienen. Aber wir sind hier. Und lesen uns so ziemlich alle Fragen durch - und versuchen sie zu beantworten.
                  Ich wage zu behaupten dass hier einige dabei sind die verdammt gut in PHP sind. Auch sie sind - zwar mal öfters ungeduldig (aber wer kann das bei der 100.000.000 Frage nach "wieso kommt da der fehler mit could not send .... output started at...?" verübeln?) - aber trotzdem sind sie hier und helfen bei Anfängerfragen.

                  Ohne mich heraustun zu wollen, aber auch ich bin täglich hier und helfe dem einen und anderen sicherlich recht schnell und gut. Allerdings fordere ich - und auch die anderen hier - ein paar Dinge.
                  Ich liste dir mal ein paar auf

                  Wir geben euch Hilfe. Dafür fordern wir von den Hilfesuchenden:

                  1.) Angemessene Formatierung (PHP-Tags - die hast du ja!)
                  2.) Keine Scrollbalken. Es ist nichts nerviger als die ganze Zeit scrollen zu müßen um zu schauen wo was wie gemacht wird. Ihr gebt uns Quellcode, wir schauen ihn uns an. Aber bitte so, dass wir keine Mühe damit haben ihn uns anzuschauen und zu verstehen. Ich denke das ist nur fair - und sollte keine große Umstände für den Hilfesuchenden machen. Das ist übrigens bei dir nicht der Fall - ich habe bei 1280x1024 noch Scrollbalken.

                  3.) Jemand postet Code und verändert etwas. Er teilt uns nur mit was er verändert hat. Zeigt uns aber nicht WIE er es verändert hat.
                  Wir können also NICHT nachvollziehen, ob er dort vielleicht einen Fehler eingebaut hat, ob ein evtl. vorausgegangener Tipp "im Sinne des Erfinders" umgesetzt wurde etc. etc.
                  Wir können so einfach keine Tipps geben - und das kostet uns und auch denjenigen, der das Problem hat, Zeit. Ich bin mir gerade leider nicht sicher was schlimmer ist.


                  4.) Das hier ist ein Forum von Programmierern für Programmierern. Wir liefern keine Fertig-Codes wie es in anderen Foren passiert. Was wir tun, sind Hilfestellungen geben. Und wenn wir etwas sehen , was nichts mit dem Problem zu tun hat (z.B. 50 Zeilen Code die mit 1 Zeile (1PHP Funktion) eigentlich erledigt werden könnten), dann wird das hier auch meistens gepostet. Als kleines Extra. Wieso nicht Hilfe annehmen?

                  Und das mein Kommentar - besser: mein Tipp - Fehl am Platz gewesen sein soll, halte ich nicht für richtig.
                  Denn: Wie die anderen geschrieben haben ist $HTTP_POST_VARS bald aus PHP verschwunden. Es wird rausgenommen. Es ist "deprecated". Mit $_POST fährst du aber auf der sicheren Schiene - auch zukünftig. Wieso sollte ich dir also mein Wissen nicht mitgeben?

                  und ich meinte mit "in verruf bringen"
                  nur diejenigen, die auf ihrem wissen sitzen bleiben und dies auch raushängen lassen!
                  Genau den Teil, den ich hervorgehoben habe, möchte ich nicht machen. Aus diesem Grunde bin ich hier. Und helfe den Leuten - wenn sie sich an unsere Regeln halten.


                  Ich hoffe du verstehst meinen Standpunkt.
                  Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                  var_dump(), print_r(), debug_backtrace und echo.
                  Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                  Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                  Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                  Kommentar

                  Lädt...
                  X