Countdown mit sql und aktion nach ablauf

Benjamin Rauer

Mitglied
Hallo Freunde

ich habe bereits alle counter im Forum durchgesehen aber leider hat mir keiner weitergeholfen. Mein counter soll die Endzeit aus der DB holen und nach ablauf einen link anzeigen.

In der DB wird die Zeit z.B. 121356478 im Feld $rows->bis abgelegt.
Ich habe folgenden Counter aber bekomme die Zeit nicht rein..... Ich hoffe mir kann jemand bei meinem Counter Helfen.

PHP:
$query = "SELECT * FROM #__reloads" .
			"WHERE  id = 'counter' and bis >= '".time()."'";
		$db->setQuery( $query );
		$rows  = $db->loadobject();

PHP:
<script language="JavaScript">
<!--
var countDownInterval=<?php echo $rows->bis ; ?>;
var countDownTime=countDownInterval;
 
function countDown()
{
    --countDownTime;
    if (countDownTime < 0)
    {
        document.getElementById('countDownText').innerHTML = '<a href="http://www.google.de" target="_top">linkname</a>'
    }  
    if (countDownTime = 0)
    {
        document.getElementById('countDownText').innerHTML = '<a href="http://www.google.de" target="_top">linkname</a>'
    } 
    if (countDownTime > 0) {
    document.getElementById('countDownText').innerHTML = countDownTime;
    }
    setTimeout("countDown()", 1000);
    if (countDownTime == 0)
    {
        document.getElementById('countDownText').innerHTML = '<a href="http://www.google.de" target="_top">linkname</a>'
        
    }
}
// -->
</script>

<span id="countDownText">0</span>


PHP:
<script language="JavaScript">
<!--
setTimeout("countDown()", 1000);
// -->
</script>
 
Kann es daran liegen das der Code für die Abfrage der Datenbank erst nach den JavaScript steht?

Dann ist "$row->bis" ja noch gar nicht vorhanden und kann deshalb auch nicht eingefügt werden.
 
es steht genau so da

Was steht wo?
Wenn es genau so da stehen würde, würde es bedeuten das "genau" das da steht was da stehen soll, nämlich die Zeit.

Aber ich vermute mal das das hier der Fehler ist:

Javascript:
if (countDownTime = 0)

Du prüfst nicht auf die Zahl 0 sondern du übergibst ihn der Variablen!
 
Also wenn var_dump den Wert NULL liefert, dann steht ja doch nicht alles so da wie es soll.

Ein echo $query ergibt folgende Anweisung:

SQL:
SELECT * FROM #__reloadsWHERE id = 'counter' and bis >= '1321539836'

Da ist zwischen dem Tabellennamen und WHERE kein Leerzeichen. Somit wird die Anweisung auch nicht korrekt ausgeführt.

Scheint also mehr als nur 1 Fehler zu sein.
 
Dann stimmt was an deiner DB-Klasse nicht, denn du lädst ja laut Funktion ein Object "loadobject()" und kein Array.
Dann sollte es doch mit $rows['bis] funktionieren, oder?
 
Zurück