Zeit aus db down laufen lassen

Deadfish

Mitglied
Hallo

Ich hab ein kleines Problem und zwar hab ich ein PHP Script geschrieben der soweit seine Funktion erfühlt er Trägt die Zeit 10 minuten ( Z.B) in die DB ein und Liest es auch raus ist ja richtig soweit nun möchte ich gerne das er die Zeit aus der db des Users nach unten Zählt und wenn er bei null ist halt dem Spieler ( User ) Geld gibt nur krieg ich das mit dem runter Zählen einfach nicht hin weder mit Cornjob oder Java Script ( leider kann ich auch nicht gut Java Script ) könntet ihr mir bitte weiter helfen :

PHP:
<?php  
include ("checkuser.php");  
?>  
<link rel="stylesheet" type="text/css" href="css/style.css">
<title><?php echo $_SESSION["titel"]; ?></title>
</head>
<script type="text/javascript">

</script>


<?
session_start();
?>

 <?php include ("temple/header_user.html") ?>
<body>
<div id="leftbar"></div><div id="box4">
  <?php include ("ress.php") ?>
</div>
<div id="box2"><br><div id="box">
<?php  


$verbindung = mysql_connect ("localhost",  
"-------", "++++++")
or die ("keine Verbindung möglich.
 Benutzername oder Passwort sind falsch");

mysql_select_db("db614787-main")  
or die ("Die Datenbank existiert nicht.");  
?>  
<?php
$zeitdazugeben = 600; // Ihr kann man noch Zahlen eingeben die er in Sekunden dazurechnen soll
 $time = +$zeitdazugeben;; // Variable der Zeit die er in die DB einträgt
 

 
$eintrag =  
"UPDATE  benutzerdaten
SET time = time '$time'
WHERE id = '".$_SESSION["user_id"]."' limit 1 ";

$eintragen = mysql_query($eintrag);


?>

<?php



$abfrage = "SELECT * FROM `benutzerdaten` WHERE id = '".$_SESSION["user_id"]."' limit 1 "; 
 $ergebnis = mysql_query($abfrage); 
    while($row = mysql_fetch_object($ergebnis)) 




echo date('i:s',$row->time); //Die abfrage der Zeit in ein Lesbares Format ---- Minuten : Sekunden ----
echo "<br>";




   
   ?>
 
Du musst eine weiter Spalte einführen, in der die letze Aktualisierung gespeichert wird (Zeitpunkt)

Dann durch "Akutelle Zeit" Minus "letzte Aktualisierung" erhälst du die Zeit, welche du von deiner Zeit in der Datenbank abziehen musst.

Diese Aktualisierung muss bei jedem Seitenaufruf durchgeführt werden. Sobald 0 erreicht wird (bzw. kleiner 0), dann muss etwas passieren.
 
Geht das den auch wenn der Spieler ( User ) sich ausloggt und dann on kommt soll er Geld bekommen wenn die Zeit natürlich um ist `?
 
Das kommt immer darauf an, wann und wo die aktualisierung vorgenommen wird. Meine Antwort oben, zeigt nur wie es in der Theorie funktioniert.

Wenn nur der Spieler selbst aktualisieren lässt, dann funktioniert es nicht, dass er Geld bekommt während er offline ist - logischerweise.
 
So hab es jetzt so aber wie mach ich das das er runterzählt das kann ich net ganz

PHP:
<?php

$abfrage = "SELECT * FROM `benutzerdaten` WHERE id = '".$_SESSION["user_id"]."' limit 1 "; 
 $ergebnis = mysql_query($abfrage); 
    while($row = mysql_fetch_object($ergebnis)) 


 $start = "$row->time";
  $ende = "0";

   echo "start: ".date("i:s", $start)."<br>";
    echo "ende: ".date("i:s" , $ende)."<br>"; 
	 $differenz = $ende - $start;
	
 ?>
 
[...] Diese Aktualisierung muss bei jedem Seitenaufruf durchgeführt werden. [...]
Nicht unbedingt.
Es kann - je nach Aufbau - auch vollkommen ausreichend sein, den Eintrag erst zu löschen, wenn die Zeit vollständig abgelaufen ist.
Bei denSeitenaufrufen, die zwischenzeitlich geschehen, kann man das vorhandene Gold auch on-the-fly ausrechnen. Das kann je nach komplexität schneller und einfacher gehen, als jedes Mal ein paar Datenbankzugriffe mehr zu machen.
 
Zurück