User Zähler

valeripf

Erfahrenes Mitglied
ich habe 3 phps und für jeden phps dan für jeden dan auch Datenbank also auch 3 Datenbanktabelle

Frage gibts Jegend wo Einfache php wo das alles zusammen zählt?

Gesamt Online, User Online, Gäste Online

Danke
 
PHP:
<?php
include("mysql.php");
	$abfrage = "SELECT COUNT(id) FROM User";
	$ergebnis = mysql_query($abfrage);
	$menge = mysql_fetch_row($ergebnis);
	$menge = $menge[0];
	function useronlinepas($ausgabe = false)
	{
	
	/* Aufruf:
	useronlinepas() -> false = Keine Ausgabe
	useronlinepas(true) -> true = Ausgabe
	*/
 
	// ~ Einstellungen ~
	// Gültigkeit (5 Min empfohlen)
	// Stunden
	$s = "0";
	// Minuten
	$m = "5";
	// Sekunden
	$i = "10";
	// ------------------
											
	// ~ Ende Einstellungen ~
	$pas = $s * 3600 + $m * 60 + $i;
	$zeit = time();
	$last = $zeit - $pas;
	$ip = $_SERVER['REMOTE_ADDR'];
	// Alte Einträge löschen
	mysql_query("DELETE FROM `useronlinepas` WHERE `LAST` < '$last';")
	or die ("MySQL-QUERY fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
	// Eintrag erstellen ggf. aktualisieren
	$result = mysql_query("SELECT `IP` FROM `useronlinepas` WHERE `IP`='$ip' LIMIT 1;")
	or die ("MySQL-QUERY fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
	// IP schon vorhanden -> Update
	if (mysql_num_rows($result)) {
		mysql_query("UPDATE `useronlinepas` SET `LAST`='$zeit' WHERE `IP`='$ip' LIMIT 1;")
		or die ("MySQL-QUERY fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
	} else {
	// IP nicht vorhanden -> Insert
	mysql_query("INSERT INTO `useronlinepas` (`IP`, `LAST`) VALUES ('$ip', '$zeit')")
	or die ("MySQL-INSERT fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
	}
	// User Online?
	if ($ausgabe == true) {
		$result = mysql_query("SELECT count(`IP`) AS `ANZAHL` FROM `useronlinepas`;")
		or die ("MySQL-QUERY fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
		$fetch = mysql_fetch_assoc($result);
		return $fetch["ANZAHL"];
	} else {
	return true;
	}
	}
	if(!empty($_SESSION['userid']))
{
   $sql = "  UPDATE `users`
               SET `last_hit`  = NOW()
               WHERE `user_id` = ".$_SESSION['userid'];
   mysql_query($sql);
}
// liefert uns in $res die Anzahl der User, 
// welche in den letzten 10 Minuten aktiv waren
$sql = "  SELECT count(*) AS `anzahl` FROM `users`
             WHERE `last_hit` > DATE_SUB(NOW(), INTERVAL 10 MINUTE)";
$res = mysql_query($sql); // $res in gewohnter Weise auswerten

?>

Anzeigen sind auf andere seite index.php
 
Ein Tip: Formatiere dein Code mit Tabulatoren. So ist er nicht lesbar ohne dass man Klammern zählt.

Zurück zum Problem. Sorry, ich versteh deine Frage immer noch nicht.
Du machst da USereinträge in die DB. Sowiet sehe ich das.
Welche der 3 Befehle in diesem Code meinst du denn? Und was soll damit passieren?



Hier mal der formatierte Code für andere mitleser
PHP:
 <?php
include("mysql.php");
$abfrage = "SELECT COUNT(id) FROM User";
$ergebnis = mysql_query($abfrage);
$menge = mysql_fetch_row($ergebnis);
$menge = $menge[0];
function useronlinepas($ausgabe = false)
{

	/* Aufruf:
	useronlinepas() -> false = Keine Ausgabe
	useronlinepas(true) -> true = Ausgabe
	*/

	// ~ Einstellungen ~
	// Gültigkeit (5 Min empfohlen)
	// Stunden
	$s = "0";
	// Minuten
	$m = "5";
	// Sekunden
	$i = "10";
	// ------------------

	// ~ Ende Einstellungen ~
	$pas = $s * 3600 + $m * 60 + $i;
	$zeit = time();
	$last = $zeit - $pas;
	$ip = $_SERVER['REMOTE_ADDR'];
	// Alte Einträge löschen
	mysql_query("DELETE FROM `useronlinepas` WHERE `LAST` < '$last';")
	or die ("MySQL-QUERY fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
	// Eintrag erstellen ggf. aktualisieren
	$result = mysql_query("SELECT `IP` FROM `useronlinepas` WHERE `IP`='$ip' LIMIT 1;")
	or die ("MySQL-QUERY fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
	// IP schon vorhanden -> Update
	if (mysql_num_rows($result)) {
		mysql_query("UPDATE `useronlinepas` SET `LAST`='$zeit' WHERE `IP`='$ip' LIMIT 1;")
		or die ("MySQL-QUERY fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
	} else {
		// IP nicht vorhanden -> Insert
		mysql_query("INSERT INTO `useronlinepas` (`IP`, `LAST`) VALUES ('$ip', '$zeit')")
		or die ("MySQL-INSERT fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
	}
	// User Online?
	if ($ausgabe == true) {
		$result = mysql_query("SELECT count(`IP`) AS `ANZAHL` FROM `useronlinepas`;")
		or die ("MySQL-QUERY fehlgeschlagen,<br /> MySQL Error: <strong>" . mysql_error() . "</strong>");
		$fetch = mysql_fetch_assoc($result);
		return $fetch["ANZAHL"];
	} else {
		return true;
	}
}




if(!empty($_SESSION['userid'])){
	$sql = "  UPDATE `users`
	SET `last_hit`  = NOW()
	WHERE `user_id` = ".$_SESSION['userid'];
	mysql_query($sql);
}

// liefert uns in $res die Anzahl der User, 
// welche in den letzten 10 Minuten aktiv waren
$sql = "SELECT count(*) AS `anzahl` FROM `users`
WHERE `last_hit` > DATE_SUB(NOW(), INTERVAL 10 MINUTE)";
$res = mysql_query($sql); // $res in gewohnter Weise auswerten

?>
 
also ich will 4 Zähler
1 Gesamt auf mein seite
2 Gesamt Online Zählen
3 Regestierste Online Zählen
4 Gäste Online Zählen

Frage

ob das möglich ist in ein PHP datei einbauen
und in einen Datenbank tabelle?
 
Zuletzt bearbeitet:
Zurück