echo erzwingen?

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

  • echo erzwingen?

    Hi,
    kann man bei komplexen verschachtelten Selectabfragen die die Scriptzeit in dieHöhe treibt ein ECHO vorzeitig erzwingen?

    Also wenn ich 2 Schleifen habe gibt es ja Zwischenergebnisse, und wenn ein bestimmtes Zwischenergebniss existiert möchte ich halt ein Echo ausgeben ujnd nicht hinterher.

    Grüße
    cu LaHood

  • #2
    Re: echo erzwingen?

    wie wäre es mit einer IF-abfrage, ob dein 'zwischenergebnis' erreicht ist?

    treibt aber durch die ständig nötige bedingungs-prüfung die laufzeit der schleifen noch zusätzlich in die höhe...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: echo erzwingen?

      Original geschrieben von LaHood
      ... komplexen verschachtelten Selectabfragen ....
      versuche mal das select zu optimieren. vielleicht kannst du da wieder was zeit rausholen ....
      hast du da noch spielraum?

      OffTopic:
      wenn du zeit gewonnen hast, kannst du ja wahsaga's lösung optional verwenden ...
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Mit flush kannst du den Ausgabe-Puffer leeren und alle bis dahin "ich sag mal erzeugten" Zeichen ausgeben/senden.

        Gruß oms
        {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

        Kommentar


        • #5
          stimmt da hätte ich auch drauf kommen können mit der IF-Abfrage

          Ich werde die Zeit mal ausmessen wielange das Script ohne IF und mit braucht.

          Da kann man garantiert was optimieren *g* Aber ich wollte erstmal das es prinzipiell läuft, und das tut es jetzt.

          Aber falls jemand Langeweile haben sollte kann er sich das Script gerne mal anschauen.




          PHP-Code:
          <td> 
                <?php  //$Value bekommt den Wert von der Seite davor (zum Bsp. $value="XETRA";)
                
             
             
          $count = -200;                 //Um die Daten von vor 8 Jahren zu erhalten
             
          $heute date('d');
             
          $monat = (date('m')-1);
             
          $jahr  date('Y');
             


             
          //Es werden alle Daten selected die dem Value entsprechen
             
          mysql_select_db($database_boerse_Aktienanlage$boerse_Aktienanlage);
             
          $query_rec_select "SELECT * FROM aktien_anlage  WHERE aktien_anlage.Market = '$value' ORDER BY ID DESC";
             
          $rec_select mysql_query($query_rec_select$boerse_Aktienanlage) or die(mysql_error());
             
          $row_rec_select mysql_fetch_assoc($rec_select);
             
          $totalRows_rec_select mysql_num_rows($rec_select);
             
             echo 
          "<br><strong> Verbindung zur Tabelle aktien_anlage wurde hergestellt:</strong>";
             echo 
          "<br>Es wurden:<strong>",$totalRows_rec_select," Datensätze</strong> ausgewählt.";
             echo 
          "<br>";
             
          ///---------------------------------------------------------------------------------------/// NEXT

            //SCHLEIFE 1 aussen  ANFANG
            
          for($i=-1;$i<mysql_num_rows($rec_select);$i++)               // Grosse Schleife
                 
          {                                       
            
                
          $ergebnis[$i]=mysql_fetch_array($rec_select); 
               
               

            
               

              
          ///---------------------------------------------------------------------------------------/// NEXT

              /////// Datei wurde per URL angelegt Anfang
               
          for($a=0;$a<9;$a++)  {                                   //SCHLEIFE 2 innen  ANFANG         
               
          $count = ($count +200);
               
          $dateiname ="http://de.table.finance.yahoo.com/table.csv?a=9&b=18&c=1994&d=".$monat."&e=".$heute."&f=".$jahr."&s=".$ergebnis[$i]['WKP_US']."&y=".$count."&g=d&ignore=.csv";
             
             
          $lines file ($dateiname);
          $target=fopen("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv","wb");
          // Durchgehen des Arrays und Anzeigen des HTML Source inkl. Zeilennummern

          foreach ($lines as $line_num => $line)
               
          fwrite($target,$line);
               
          fclose($target);
               
               
          /////// Datei wurde per URL angelegt ENDE
               
          echo "<br> Die Datei ",$value,"_".$ergebnis[$i]['WKP_US']." Num.",$a," wurde erfolgreich angelegt!";
                    
               
          ///---------------------------------------------------------------------------------------/// NEXT
               
               /////// Schneide der Datei die Anfangszeile weg ANFANG
               
          $oldfile="../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv";

                     
          # Shared lock auf die Quelldatei
                    
          $old fopen($oldfile"r");
                    
          flock($old1) or die("Kann die Quelldatei $oldfile nicht locken.");

                     
          # Exclusive lock auf die Zieldatei
                    
          $new fopen($oldfile.".csv""w");
                    
          flock($new2) or die("Kann die Zieldatei $newfile nicht locken.");

                     
          $lineno 0;
                       while(
          $line fgets($old1024)):
                        if (
          $lineno++ == 0)
                             continue;  
          # Zeile auslassen

                           
          fputs($new$line);
                       endwhile;

                       
          fclose($old); # Gibt das Lock automatisch auf

                        # Alte Datei wegwerfen.
                       
          unlink($oldfile);
                       
          fclose($new); 
               
          /////// Schneide der Datei die Anfangszeile weg ENDE
               
               ///---------------------------------------------------------------------------------------/// NEXT
               
               /////// Kopiere die Werte zu einer Datei ANFANG
               
               
               
                  
          $file fopen("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv.csv","r+");
                   
          // Zuerst 2. Datei mit der Kopie öffnen.
                  
          $old fread($file,filesize("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv.csv"));
                   
          // Ganze Datei in eine Variable einlesen

                      
          fclose($file);
                      
          // Datei wieder schliessen;-)
                    
              
          if ($a >0) { 
                    
          $file fopen("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv.tmp","r+");
                    
          // Zuerst 2. Datei mit der Kopie öffnen.
                    
          $neutext fread($file,filesize("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv.tmp"));
                    
          // Ganze Datei in eine Variable einlesen
                    
          fclose($file);
              }     
              
                    
          $datei fopen("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv""w");
                    
                   
          // Datei 1 mit den Einträgen oder Deinem text öffnen
                  
          fwrite($datei"$neutext$old");
                   
          // Den neuen Text, danach den alten Text hineinschreiben
                  
          fclose($datei);
                   
                   
          // Datei wieder schliessen.#
                   
                   
          $vonDatei = ("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv");
                   
          $zuDatei =  ("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv.tmp");
                    
                   
          //copy('../db/csv/eintraege.csv', '../db/csv/$value_$ergebnis['$i']['WKP_US'].csv');
                   
          copy($vonDatei$zuDatei);
                   
          // Und zum Schluss alles in die Datei 2 kopieren
           
                /////// Kopiere die Werte zu einer Datei ENDE
                
                
                ///---------------------------------------------------------------------------------------/// NEXT^
                
          }
                 
          /// Tempdateien werden gelöscht
                 
          unlink("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv.tmp");
                 
          unlink("../db/csv/".$value."_".$ergebnis[$i]['WKP_US'].".csv.csv");
                 
                 echo 
          "<br><br><strong> Aktie:",$ergebnis[$i]['Aktienname']," für den Market:",$ergebnis[$i]['Market']," wurde erfolgreich importiert.</strong>";
                 echo 
          "<br>",$dateiname;
                 echo 
          "<br>-------------------------------------------------<br><br>";
            
              
          $a =0;
              
          $count =(-200);
              }

          Grüße
          cu LaHood

          Kommentar


          • #6
            thx oms,

            das teste ich mal.
            Übrigens IF bringt garnichts

            Kommentar


            • #7
              mist,

              Note to users of PHP/Apache. As mentioned in the release notes of Apache 1.3 (http://httpd.apache.org/docs/windows.html), flushing will not work in a PHP/Apache configuration running on a Windows system.
              Also doch Lamp System. Weiss jemand ob das unter Windoof und Apache 2 läuft?

              Kommentar


              • #8
                Original geschrieben von LaHood
                Also doch Lamp System. Weiss jemand ob das unter Windoof und Apache 2 läuft?
                keine ahnung. hast du noch einen zweiten rechner zur verfügung?
                da könntest du linux draufmachen. da geht es nämlich.....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  yo Abraxax,

                  hab zu Hause noch einen stehen der eh wegen kaputter Windowsanmeldung zerschossen ist. Da ja Paladium und CoKG schon quasi auf der Türstelle stehen ist Linux eh Pflicht in der Zukunft

                  Aber ein bischen graut es mir schon davor

                  Kommentar


                  • #10
                    ob_end_flush geht auch nicht?
                    {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

                    Kommentar


                    • #11
                      da bekomme ich ne Fehlermeldung:

                      Fatal error: Call to undefined function: ob_end_flash() in c:\apache\htdocs\typo3\boerse\main\csv_db_import_hist.php on line 49

                      Kommentar


                      • #12
                        Original geschrieben von LaHood
                        Aber ein bischen graut es mir schon davor
                        linux ist eigentlich nicht schwer. man muss sich nur am anfang mal intensivst damit befassen, dann gehts schon.
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          ob_end_flush() ... mit u wie Ulrich.
                          {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

                          Kommentar


                          • #14
                            @ oms,

                            lol zuviel Flash im Kopf. Irgendwie schnalle ich es nicht.

                            Also am Scriptanfang steht:

                            PHP-Code:

                              ob_start
                            ()
                              echo 
                            "Ich bin ein Echo";
                               
                            $output ob_get_contents();
                               
                            ob_end_flush();
                               echo 
                            $output
                            Wo is das Problem? Es dauert genausolange wie vorher, und die Ausgabe kommt erst am Ende.

                            Grüße
                            cu LaHood

                            Kommentar


                            • #15
                              Ich hab selber eben noch ein wenig rumprobiert. Hab´s mit den ob Funktionen auch nicht auf die Reihe bekommen, sondern nur mit flush.

                              Weiss jemand ob das unter Windoof und Apache 2 läuft?
                              Auf http://www.php.net/manual/en/function.flush.php steht bei den Kommentaren, daß flush bei W32/ APACHE2/PHP4.23 funktioniert.

                              Gruß oms
                              {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

                              Kommentar

                              Lädt...
                              X