Problem bei while () und if()

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

  • Problem bei while () und if()

    Hallo,

    ich da ein Problem und zwar, dass Skript, schreibt den Inhalt einer Variable nicht in die dafür vorgesehene Datei, nur wenn ich fputs in der while Schleife ausführe, wenn ich das in der while mache, habe ich aber das Problem, dass ich keine If Abfrage machen kann, die prüft ob das schreiben TRUE zurückgibt, weil das ja denn so oft TRUE ergibt, wie die Schleife durchlaufen wird.

    Hier mal das Skript.

    PHP-Code:
     
    $i
    =1
        
    $fp=fopen("text.txt""w+"); 
             
        while(
    $row_art=mysql_fetch_array($query_art) or die(mysql_error())){ 
        
    //Ausgabe zum Artikel 
        
    $back=
        -----------------------------------------------------------------------\n 
                                Artikel "
    .$i++."\n 
                                Zeitstempel "
    .$row_art['article_tstamp'].
        ----------------------------------------------------------------------\n 
        Artikel ID:         "
    .$row_art['article_id']."\n 
        Artikel Titel:        "
    .$row_art['article_title']."\n 
        Artikel Untertitel    "
    .$row_art['article_subtitle']."\n 
        Artickel Summary    "
    .$row_art['article_summary']."\n 
        "

         
        
    $fpu=fputs($fp$back); 
        } 
    // while ARTIKEL 
    ?> 



    Und hier die Lösung die ich mir eigentlich gedacht habe, aber wo er nichts in die Datei schreibt.

    PHP-Code:
     
    $i
    =1
        
    $fp=fopen("text.txt""w+"); 
             
        while(
    $row_art=mysql_fetch_array($query_art) or die(mysql_error())){ 
        
    //Ausgabe zum Artikel 
        
    $back=
        -----------------------------------------------------------------------\n 
                                Artikel "
    .$i++."\n 
                                Zeitstempel "
    .$row_art['article_tstamp'].
        ----------------------------------------------------------------------\n 
        Artikel ID:         "
    .$row_art['article_id']."\n 
        Artikel Titel:        "
    .$row_art['article_title']."\n 
        Artikel Untertitel    "
    .$row_art['article_subtitle']."\n 
        Artickel Summary    "
    .$row_art['article_summary']."\n 
        "

         
        } 
    // while ARTIKEL 
    $fpu=fputs($fp$back);     
    if (
    TRUE == $fpu) { 
            echo 
    "Hallo"
        } 

    ?> 
    Kann mir da jemand helfen wäre wie immer sehr dankbar.

  • #2
    Warum schreibst Du etwas in eine Datei, wenn Du eine Datenbank benutzt?

    Kommentar


    • #3
      Weil das quasi ein Datenbankupdate ist.

      Kommentar


      • #4
        Re: Problem bei while () und if()

        schreibt er gar nichts in die datei, oder vielleicht zufällig immer nur den inhalt des letzten datensatzes ...?
        das wäre ja nur logisch, da du $back in deiner while-schleife ja immer wieder mit dem aktuellen wert überschreibst - anhängen statt überschreiben wäre dann gefragt, $back .= ...


        btw: bei den mysql_fetch-funktionen or die(mysql_error()) zu benutzen, halte ich für völligen quatsch. das brauchst du beim aufbau der verbindung und beim absetzen der query, aber nicht dort.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hallo,

          er schreibt gar nichts in die Datei.

          Den Verbindungsoperator habe ich auch schon benutzt aber auch nichts.

          Danke für den Tipp, nachdem du es gesagt hast ist es mir auch aufgefallen.

          Kommentar


          • #6
            Original geschrieben von Proggy
            er schreibt gar nichts in die Datei.
            und eine kontrollausgabe von $back direkt nach der while-schleife ergibt was?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Gar nichts ich kann absolut gar nichts mehr ausgeben nach der Schleife.

              Kommentar


              • #8
                die while-schleife wird verlassen, wenn kein datensatz mehr gefunden wird (normalerweise)

                wenn kein datensatz mehr gefunden wird, ergibt der ausdruck
                PHP-Code:
                $row_art=mysql_fetch_array($query_art
                false und php prüft die zweite bedingung

                da die zweite bedingung
                PHP-Code:
                die(mysql_error()) 
                lautet, wird dein skript dann abgebrochen und der code hinter der while-schleife wird nicht ausgeführt


                diese zweite bedingung brauchst du nicht, mach sie einfach weg und werde glücklich
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Geil danke, wie immer beste Arbeit.

                  Kommentar

                  Lädt...
                  X