Zitat Zitat von jpwfour Beitrag anzeigen
eine möglichkeit:
PHP-Code:
while($res2 sql_fetch_assoc($sql2)) {

/* ca 2000 Datensätze verarbeiten */


Anzeige für Adminwas und ob überhaupt etwas getan wird

echo '.';
flush(); //sendet den ausgabe puffer

}

echo 
'fertig'
so würde nach jedem verarbeiteten datensatz ein punkt erscheinen, und am ende fertig.

wobei diese option nur auf ca. 40% aller syteme/server funzt, da zum teil der server weiter "puffert", also doch alles erst ausgibt, wenn fertig gearbeitet, oder dein browser weiterpuffert, also auch alle punkte auf einmal erscheinen und nicht nacheinander.

aber einen test ist es ja wert.

die bessere methode wäre, den der while schleife vorausgehenden query per limit abzugrenzen, und dann eben per GET varaibel und einem javascript die limits immer höher setzen.
So hatte ich es ja auch gehabt, dummerweise konnte ich mit flush(); alleine kein Erfolg erzielen, nur mit :

flush();
ob_flush();

wurde das Ergebniss direkt ausgegeben. Die Daten, die ausgegeben werden sollten, stehen direkt vor dem flush();

So sieht es aus (bei einem JS-Noob ) :

PHP-Code:

// blabla
        echo '<div align="center"><div id="versand">Es werden <strong>' . $res4a . '</strong> Paidmails der Kampagne <strong>' . $k_name . '</strong> verschickt.<br /><br />';
        ob_flush();
        flush();

// blabla

?>
<script type="text/javascript">
var count = 0;
</script>
<?PHP
        
while($res4 sql_fetch_assoc($sql4)) {
            
extract($res4);
            
extract($res21);
?>
<script type="text/javascript">
count++;
zahl.innerHTML = count;
</script>
<?PHP
            
echo '<div id="zahl" style="font-size:14px; font-weight:bold;"></div>';
            
ob_flush();
            
flush();
// blabla

        
}
        echo 
'</div></div>';
        
ob_flush();
        
flush();
im Firefox läuft das Hochzählen für en 1. Durchgang perfekt, allerdings wird für den 2. Durchgang ein neuer DIV unter dem 1. gemacht und der Zähler läuft im 1. DIV wieder hoch, nicht im 2. :/