Ausgabetext vor Datenbankabfrage ausgeben

cm-sebastian

Grünschnabel
Hallo und Guten morgen,

ich habe folgendes Problem.
Ich habe mit ein Script gebaut, was aus verschiedenen Datenbanken Werte zusammensucht und in eine Datenbank zusammenfasst. Das funktioniert auch alles. Die Sache ist nur, das ich gerne ausgeben möchte, wenn er anfängt in die DB zu schreiben.

Um es einmal bildlich darzustellen:

Sobald ich in meiner switch-case Aneisung in step 1 reinspringe, möchte ich sofort angezeigt bekommen: Datenbankeinträge werden erstellt...

Dann sollen die DB-Einträge gemacht werden.

Wenn er damit fertig ist, soll ein weiterer Text angezeigt werden. Immo ist es eben so, das das Script erst komplett abgearbeitet wird, und dann alles auf einmal angezeigt wird.

Vielen Dank im Voraus für eure Hilfe.
 
Gib doch vor der DB Anweisung mittels echo aus was du ausgeben willst.
Also
PHP:
echo "hier dein Text";
mysql_query ("SQL Anweisung");
echo "hier noch mal irgendein Text";

Wenn ich dich richtig verstanden hab dann ist das deine Lösung.
 
Hi,

genau so sieht mein Skript ja aus. Und das ist auch das Problem. Logischerweise müsste ich ja erst eine Ausgabe bekommen, bevor er die DB-Abfrage startet. Das passiert aber nicht. Es wird erst das komplette Skript abgearbeitet, bevor mir irgendwas angezeigt wird.

PHP:
echo 'Datenwerden hinzugefügt...<br/>';

>>mysql_query

echo '<br/><b>'.$y.'</b> Datensätzeangelegt.<br/><br/>';
 
Es geht nicht .

PHP ist wird auf dem Server interpretiert, dh
das skript wird erst komplett abgearbeitet und erst DANN
gibt der server einen output.
 
Das ist doch ne Antwort. ;-)

Hab ich also garkeine Möglichkeit, mir vorher ne Ausgabe bringen zu lassen?

Ich habe festegestellt, wenn ich eine große Menge an Daten habe, das mir die Daten dann "zwischendurch" schon ausgegeben werden.
Evtl muss ich dafür doch AJAX nutzen. Es sei denn, einer von euch weiss doch eine Möglichkeit in PHP. evtl mit Delay oder so.
 
Ok, habe das mit sleep() getestet. Ergebnis war, das vor jeglicher Ausgabe ne Sekunde Pause war... :-/
So war der Plan aber nicht.
 
Zuletzt bearbeitet:
Habe nach einiger Suche nun folgenden Code gefunden:

HTML:
<div id="ladebalken"><p style="width: 1%;"><span>1%</span></p></div>
<script type="text/javascript">
<!--
oLadebalken = document.getElementById("ladebalken").firstChild;function progress(value){
	if(value < 51)        
	 oLadebalken.style.background = 'r'+'gb(255, ' + Math.floor(value / 50 * 255) + ', 0)';
	else{        
	 oLadebalken.style.background = 'r'+'gb(' + Math.floor(255 - ((value - 50) / 50 * 255)) + ', 255, 0)';            
	 oLadebalken.firstChild.firstChild.nodeValue = oLadebalken.style.width = value + "%";
	}
// -->
</script>

PHP:
<?php    
// Eine Funktion, um den Fortschrittsbalen zu aktualisieren    
function progress($value)    
{        
	echo('<script type="text/javascript">progress('.intval($value).');</script>');        
	flush();    
}        
for($i=0; $i<=78; $i+=2)    
{        
	progress($i / 78 * 100);
	usleep(50000);    
}
?>

Allerdings bin ich mir nicht so sicher, wo ich meine SQL Abfrage reinpacken muss. Weiss einer von euch Rat?
 
Zurück