Problem mit Zeile ändern in .txt

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

  • #16
    Habe es nun nochmal mit der implode() Funktion probiert,
    jedoch erscheinen nun folgende Fehlermeldungen:

    Warning: fopen() expects parameter 1 to be string, resource given
    in /www/htdocs/beta/schmoll/myquestions.php on line 313

    Warning: implode() [function.implode]: Bad arguments.
    in /www/htdocs/beta/schmoll/myquestions.php on line 314

    Warning: fclose(): supplied argument is not a valid stream resource
    in /www/htdocs/beta/schmoll/myquestions.php on line 315


    PHP-Code:
    $new_row "$id|$data1|$data2|$data3|$data4|| \n";

    $file fopen($file,"r");

    while(!
    feof($file))
    {
      
    $lines explode("||"fgets($file6000));
      foreach(
    $lines as $line)
      {
        
    $arr explode("|"$line);
        
        if(
    $arr[0] == $_POST["id"])
        {     
          
    $line $new_row;
          
          
    $fp fopen($file,"w");
          
    fputs($fp,implode("|",$line));
          
    fclose($fp);
          
          echo 
    "Der Eintrag mit der ID ".$_POST["id"]." ist erfolgreich
    geändert worden :)
    <br><br><input type=\"button\"
    onClick=\"window.location.href='?validCode=
    $validCode'\"
    value=\"zur&uuml;ck\">"
    ;    
        }
      }
    }

    fclose($file); 
    Zuletzt geändert von kerbstone; 01.05.2007, 18:47.

    Kommentar


    • #17
      Kann mir jemand nochmal bitte Hilfestellung leisten?

      Kommentar


      • #18
        Original geschrieben von kerbstone
        Warning: fopen() expects parameter 1 to be string, resource given
        Ist doch wohl eindeutig.

        fopen will einen Dateinamen als Parameter - du übergibst aber einen zuvor bereits erstellen Datei-Handle.

        Und wozu eigentlich überhaupt noch mal fopen in der Schleife?
        Ein und die selbe Datei zwei mal zu öffnen, ist doch blödsinnig.

        Entweder du öffnest sie gleich zum Lesen und Schreiben - oder du holst dir erst mal die Daten, verarbeitest sie, und schreibst sie dann zurück.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #19
          Okay, dankeschön ^^
          Ich probiere mich nochmal an dem Code.

          Kommentar


          • #20
            Bin jetzt etwas weitergekommen, erhalte nun
            aber noch die Fehlermeldung:

            Warning: fgets(): supplied argument is not a valid stream resource
            in /www/htdocs/beta/schmoll/myquestions.php on line 305



            PHP-Code:
            $file "database.txt";

            $new_row "$id|$data1|$data2|$data3|$data4#newline \n";

            $fp fopen($file,"r+");

            while(!
            feof($fp))
            {
              
            $lines explode("#newline \n"fgets($file6000));
              foreach(
            $lines as $line)
              {
                
            $arr explode("|"$line);
                
                if(
            $arr[0] == $_POST["id"])
                {     
                  
            $line $new_row;
                  
                  
            fputs($file,implode("|",$line));
                  
                  echo 
            "Der Eintrag mit der ID ".$_POST["id"]." ist erfolgreich geändert
             worden :)<br><br><input type=\"button\"
             onClick=\"window.location.href='?validCode=
            $validCode'\"
             value=\"zur&uuml;ck\">"
            ;    
                }
              }
            }

            fclose($fp); 

            Kommentar


            • #21
              Weil $file der Dateiname ist und keine Resource.
              PHP-Code:
                $lines explode("#newline \n"fgets($file6000)); 
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #22
                Ahh, okay, das habe ich verstanden

                $lines = explode("#newline \n", fgets($fp, 6000));

                Jetzt bleibt nur noch eine Hürde zu überwinden bei
                der Stelle:

                fputs($file,implode("|",$line));

                Hier erhalte ich die Fehlermeldung:
                Warning: implode() [function.implode]: Bad arguments.
                in /www/htdocs/beta/schmoll/myquestions.php on line 306

                Kommentar


                • #23
                  und $line ist nicht zufällig ein string?

                  Kommentar


                  • #24
                    Ja, $line ist ein String,
                    wie soll ich denn anders dem script klar machen,
                    dass es genau in die konkrete Zeile schreiben soll?
                    Hmmm, verstehe ich nicht

                    Kommentar


                    • #25
                      was erwartest du denn von der zeile?

                      Kommentar


                      • #26
                        Das eine komplette Zeile ander Stelle eingefügt wird
                        ala $id|$data1|$data2|$data3|$data4#newline \n.

                        Kommentar


                        • #27
                          wozu soll das implode dann gut sein?

                          Kommentar


                          • #28
                            Gute Frage,
                            das ist hier unnütz, da ich mittels fputs() ja schon die
                            Zeile schreibe, stimmt.
                            Schreibe ich aber fputs($file,$line), so wird mir die
                            Zeile immer an den Anfang gesetzt (r+) oder
                            an das Ende der Datei (a+), nicht aber an die
                            gewünschte Stelle.

                            Kommentar


                            • #29
                              Nochmal von vorne:
                              Ich möchte im Prinzip so simpel wie
                              bei MySQL eine Zeile ändern ala
                              öffne datei where id = $id und dann
                              update where id = $id.
                              Geht das überhaupt?

                              Kommentar


                              • #30
                                ja, dazu gibt es bei faq-php.de ein beispiel.

                                Kommentar

                                Lädt...
                                X