User-Online-Counter

trc120

Gesperrt
Hallo
Ich habe mir einen User Online Counter erstellt, leider bekomme ich immer die Fehlermeldung: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource , und : Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource,

Habe mir auch schon auf einer Seite über mysql schlau gemacht, jedoch blicke ich da nicht so richtig durch.

PHP:
$ip = $_SERVER['REMOTE_ADDR'];
$where = $_SERVER['REQUEST_URI'];
$timestamp = time();
$timeout = 300;
$noofrows = 0;

$result1 = mysql_query("SELECT * FROM usersonline");
	while ($ergebnis2 = mysql_fetch_array($ergebnis1))  // Fehlerzeile 1
{
	if ($ergebnis2[1] == $ip) {
		$noofrows = 1;
	}
}

if ($noofrows == 1) {
	mysql_query("UPDATE usersonline SET timestamp = '$timestamp', url = '$where' WHERE ip = '$ip'");
}

if ($noofrows == 0) {
	mysql_query("INSERT INTO usersonline (ip, timestamp, url) VALUES ('$ip', '$timestamp', '$where')");
}

$alt = $timestamp-$timeout;
mysql_query("DELETE FROM usersonline WHERE timestamp < '$alt'");

$ergebnis3 = mysql_query("SELECT DISTINCT ip FROM usersonline");
 $online = mysql_numrows($ergebnis3); // Fehlerzeile 2 

if ($online == 1) {
	echo "$online user online";
} else {
	echo "$online users online";
}

kann mir da jemand helfen ? :-(
 
Nabend,

Versuch es mal so:

PHP:
mysql_query($sql) or echo mysql_error();

Und poste dann den Fehler, dann kann man evtl. helfen.
 
Z.B. hier:

PHP:
$result1 = mysql_query("SELECT * FROM usersonline") or echo mysql_error();

Statt echo kannst du auch die() verwenden. In der Regel ist es nicht erwünscht, dass das Script weiter ausgeführt wird, wenn schon Datenbank-Fehler aufgetreten sind.

Ich würde es an deiner Stelle hinter jeden mysql-Befehl einbauen. Hilft ungemein, Fehler zu finden. Meine Vermutung ist, das an der Tabelle usersonline irgendwas faul ist. Das sehen wir aber erst, wenn du die Fehlerausgabe eingebunden hast.
 
Da bekomme ich nur einen : Parse error: parse error in H:\Programme\xampp\htdocs\trc_neu\module\user_online\user_online_inc.php on line 12
 
Hi,

PHP:
$result1 = mysql_query("SELECT * FROM usersonline");
    while ($ergebnis2 = mysql_fetch_array($ergebnis1))

fällt dir daran denn nichts auf? Was übergibst du mysql_fetch_array und was hast du, dass du übergeben könntest?
 
Ich gaube ich gebe es für heute auf, habe alles geändert, aber die Fehler bleiben:(
werde mir das ganze Morgen nochmals durchsehen.

Jedenfals einen herzlichen Dank an Euch.:)
 
Zurück