Ik heb deze "onlineteller" maar hij lijkt niet te werken is alles wel goed?
<?
$online_check_sql = "SELECT * FROM online WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'";
$online_check_res = mysql_query($online_check_sql);
$online_check = mysql_num_rows($online_check_res);

if($online_check == 0)
{
$online_add_sql = "INSERT INTO online SET ip = '" . $_SERVER['REMOTE_ADDR'] . "', tijd = '" . time() . "'";
$online_add_res = mysql_query($online_add_sql);
}
else
{
$online_change_sql = "UPDATE online SET tijd = '" . time() . "' WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'";
$online_change_res = mysql_query($online_change_sql);
$online_offline_sql = "DELETE FROM online WHERE tijd < '" . time() . " - 300'";
$online_offline_res = mysql_query($online_offline_sql);
}

$online_sql = "SELECT * FROM online";
$online_res = mysql_query($online_sql);
$online = mysql_num_rows($online_res);
?>

<li>Online : <?= $online; ?></li>
Lijkt goed te zijn. Waarom werkt ie niet? (En doet toch eens wat aan je eeuwige klootviool met aanhalingstekens zeg.)
Mij lijkt hij ook goed maar als ik op mijn site ben, en iemand anders is daar ook (contact via msn) staat ie gewoon op 1 :S
De tabel is:
CREATE TABLE online (
ip varchar(20) NOT NULL,
id int(11) auto_increment primary key,
tijd int(30) NOT NULL
);

En je moet toch netjes programmeren? Vars buiten de quotes enzo :)
idd zo hoort het mitch ++! haha..

ik zie zo snel ook geen fout :/

misschien kun je wel hier iets aan doen..

if($online_check == 0)

kun je ook meteen doen van:

if (mysql_num_rows($online_check_res) == 0)

maar ik heb ff kwartier dat script doorgelezen maar zie echt niets fout, ben ik blind :/ ?
de code is prima hoor mitch, maar Arend gebruikt liever pear en dat moet jij dus ook gebruiken van hem ;)
Waarom lijkt het dan niet te werken :S
ik heb er ook ff naar liggen/zitten staren maar zag geen fouten, ik heb enkele dingen gewijzigt zodat het wat netter werd (in mijn ogen). Ik heb hem op eigen host getest (www.bloemertaudiovideo.nl/test/online2.php) daar werkt hij PERFECT en dit is de code:

<?
include("connect.php");
$online_check_res = mysql_query("SELECT * FROM online WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$online_check = mysql_num_rows($online_check_res);

if($online_check == 0)
{
$online_add_res = mysql_query("INSERT INTO online SET ip = '" . $_SERVER['REMOTE_ADDR'] . "', tijd = '" . time() . "'");
}
else
{
$online_change_res = mysql_query("UPDATE online SET tijd = '" . time() . "' WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$online_offline_res = mysql_query("DELETE FROM online WHERE tijd < '" . time() . " - 300'");
}

$online_res = mysql_query("SELECT * FROM online");
$online = mysql_num_rows($online_res);

echo "<li>Online: $online</li>";
?>

denk er ook ff aan dat je connectie heb met de database include("connect.php"); en check of, als de ander de site bezoekt, jij niet over je limiet van 5 min bent. Verder zie ik geen oplossing.

en als t niet wil dan ligt t niet aan het script want hij doet t ook bij mij!!!!!

arnoldxp
De database connectie is er...
Via connect.php (:P) ergens bovenaan de page na session_start();
En jou script is hetzelfde als mijne dus neem ik aan dat ie werkt... maar ik zal um proberen :)
IK HEB HET!!!!!!!!!!

<?
$online_check_res = mysql_query("SELECT * FROM online WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$online_check = mysql_num_rows($online_check_res);

if($online_check == 0)
{
$online_add_res = mysql_query("INSERT INTO online SET ip = '" . $_SERVER['REMOTE_ADDR'] . "', tijd = '" . time() . "'");
}
else
{
$time = time() - 300;
$online_change_res = mysql_query("UPDATE online SET tijd = '" . time() . "' WHERE ip = '" . $_SERVER['REMOTE_ADDR'] . "'");
$online_offline_res = mysql_query("DELETE FROM online2 WHERE tijd < '$time'");
}

$online_res = mysql_query("SELECT * FROM online");
$online = mysql_num_rows($online_res);

echo "<li>Online: $online</li>";
?>

waarschijnlijk is mysql niet slim genoeg om een rekensom als time() -300 in een string goed te berekenen. dus in php een var dat laten doen.
Iemand die dit kan bevestigen voordat ik het in 10 pages ofsow moet veranderen?
waarom heb je het niet laten includen??????

Reageren