Hochzählen Counter mit aktuellem DB-Record

Sandro19

Grünschnabel
Ich habe ein PHP Skript, dass >100'000 MySQL Records durcharbeitet. Es migriert eine uralte DB in eine Relationale DB. Dieses Script läuft ziemlich lange. Zur Kontrolle, welcher Datensatz grade durcharbeitet wird, möchte ich diesen am Bildschirm ausgeben.

Ich könnte natürlich in der Schleife am Ende ein echo ausgeben, mit der Datensatznummer, die gerade verarbeitet wurde. Aber dann würde ein seeeehr langes Dokument entstehen weil logischerweise 100000 Zahlen untereinander stehen würden.

[...]
Record 5603 verarbeitet...
Record 5604 verarbeitet...
Record 5605 verarbeitet...
Record 5606 verarbeitet...
[...]

Ist es möglich per JavaScript die aktuelle PHP Variable $aktuellerDatensatz auf dem Bildschirm auszugeben, und sobald diese Variable verändert wird, JavaScript die "alte" Ausgabe auf dem Bildschirm löscht und die aktuelle wieder ausgibt.

So würde am linken oberen Bildschirmrand nur EINE Zahl stehen, die dauernd verändert wird (ähnlich wie bei einer Stoppuhr). Durchschnittliche Verarbeitungsdauer pro Datensatz: 40ms
 
Hi,

wie wäre es, wenn du ein DIV erstellst
HTML:
<div id="result"></div>

... und mit einer javascript-Funktion in dieses DIV immer den aktuellen Eintrag deiner Ausgabe schreibst?

Code:
document.getElementById('result').innerHTML = 'XXX'

Diese Funktion müsstes du halt über ein php-echo jedesmal aufrufen. Du müsstest testen, ob das performance-mäßig nicht zu einem problem führen könnte...

grüßle
 
Irgendwie will das ganze nicht funktionieren... :( Hab ich einen Fehler gemacht beim JS einbinden?

Code:
<html>
<head>
<title>&Uuml;bernahme</title>
</head>
<body bgcolor="white">
<div id="result"></div>
<script language="JavaScript" type="text/javascript">
<?php

[... PHP Includes, Vars und Definitionen]

while ($row = mysql_fetch_object($qry_get_personen)) {

[... PHP und Queries]

    echo "document.getElementById('result').innerHTML = '".$aktuellerDatensatz."'";

} // End While

?>
</script>
</body>
</html>
 
probiers mal so...

ich kann aber nicht garantieren, dass showResult() aufgerufen wird. ansonsten müsste man das mit einem event-handler machen.

Code:
<html>
<head>
<title>&Uuml;bernahme</title>
</head>
<body bgcolor="white">
<div id="result"></div>
<script language="JavaScript" type="text/javascript">
function showResult(myResult) {
    document.getElementById('result').innerHTML = myResult;
}
</script>
<?php

[... PHP Includes, Vars und Definitionen]

while ($row = mysql_fetch_object($qry_get_personen)) {

[... PHP und Queries]

    echo "<script>showResult('".$aktuellerDatensatz."')</script>";

} // End While

?>
</body>
</html>
 

Neue Beiträge

Zurück