Problem mit Zeile ändern in .txt

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #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); 
    Last edited by kerbstone; 01-05-2007, 18:47.

    Comment


    • #17
      Kann mir jemand nochmal bitte Hilfestellung leisten?

      Comment


      • #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.

        Comment


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

          Comment


          • #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); 

            Comment


            • #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]

              Comment


              • #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

                Comment


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

                  Comment


                  • #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

                    Comment


                    • #25
                      was erwartest du denn von der zeile?

                      Comment


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

                        Comment


                        • #27
                          wozu soll das implode dann gut sein?

                          Comment


                          • #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.

                            Comment


                            • #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?

                              Comment


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

                                Comment

                                Working...
                                X