• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MYSQL & PHP : Zeiten speichern

aClaim

Neues Mitglied
Hallo!

Ich bin neu hier und mir nicht ganz sicher ob ich alles richtig mache,
aber ich weiss nicht wohin sonst mit meiner Frage.. :(

Ich habe mittels AJAX, PHP, MYSQL ein so genanntes "Beförderungstool" geschrieben.

Hierbei ist der Sinn einen Mitarbeiter einzutragen in eine Tabelle, nach 90min gearbeitete Zeit
erscheint dann eine Schrift in der Tabelle mit "Beförderungszeit!".
Der Mitarbeiter kann dann auf Knopfdruch "Befördern" auf den nächsten Rang befördert werden.
(Das Ganze dient natürlich nur einem Onlinespiel :p)

Ich habe soweit alles alleine gepackt, nun stehe ich aber vor einem Punkt wo ich nicht mehr weiter weiss,
und ich hoffe ihr könntet mir weiterhelfen.

Ich scheitere an der Funktion abmelden, bei dieser soll der Mitarbeiter die Minuten die er gearbeitet hat, gutgeschrieben bekommen, und beim erneuten Anmelden das was er bereits erarbeitet hat, wieder bekommen.
Hierzu ein Beispiel: Mitarbeiter Testacc meldet sich an, muss 90 Minuten arbeiten, geht nach 20 Minuten aber wieder,
danach meldet er sich wieder an wenn er wieder kommt, nun muss er nurnoch 70 Minuten arbeiten.

Mein bisheriger Code für das Anmelden:
Code:
<?php
// Die Seite anmelden.php

$name= trim($_POST["name"]);
$uhrzeit = date("H:i");
$teile = explode(':', $uhrzeit);
$uhr  = date("H:i", mktime(date("$teile[0]"), date("$teile[1]")+90));

    if ($name == "") {
        echo "Gib einen Namen ein.";
        $Fehler = 1;
    }
   
   if ($Fehler != 1) {

    // Zugangsdaten
    define('MYSQL_HOST', 'ausgeblendet');
    define('MYSQL_USER', 'ausgeblende');
    define('MYSQL_PASS', 'ausgeblende');
    define('MYSQL_DATABASE', 'ausgeblende');

    // Verbindung
    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

   $sql = "INSERT INTO Angemeldet(Name, Rang, Zeit)
            SELECT Name, Rang, '".$uhr."'
            FROM Mitglieder
            WHERE Name = '".$name."'";
                     
    mysql_query($sql) OR die(mysql_error());
   
    echo "<font size='2'>Mitarbeiter ".$name." angemeldet.</font>";

    $Angemeldet = 1;

}


if ($Angemeldet != 1) {

    echo "&nsbp; Nicht erfolgreich!";

}

?>

Ich hoffe jemand kann mir in meiner Verzweiflung noch helfen..
Weiss echt nicht mehr weiter und bin über jeden Ratschlag froh!

Danke und liebe Grüße,
aClaim
 
Werbung:
Bin zwar kein Profi aber ich meine das hier die einfachste Form von SQL-Injektion zum erfolg führen wird.
Also schau dir mal PDO oder wenigstens mysqli an, ich hab mich auch erst vor kurzem von mysql auf PDO bekehren lassen, das ist für den normalen Einsatz auch relativ einfach zu erlernen.

Ich würde an deiner Stelle eine Tabelle anlegen die Login- und Logoutzeiten für jeden User erfasst, und dann kannst du die ja beim Login die gesamte Spielzeit ausrechen und das Level bestimmen.
Code:
+ - - + - - - - + - - - - -+ - - - - -+
| id  | user_id | login    | logut    |
+ - - + - - - - + - - - - -+ - - - - -+
| 1   | 1       | DATETIME | DATETIME |
| 2   | 1       | DATETIME | DATETIME |
+ - - + - - - - + - - - - -+ - - - - -+

gibt sicher noch bessere Möglichkeiten aber somit könntest du z.B. bei 120 gespielten Minuten den Wert in einem Cookie Setzen und damit dann in deiner Anwendung rechnen.
 
Werbung:
Du kannst doch einfach in der Datenbankstruktur ein Feld deklarieren, welches die gearbeitete Zeit erfasst. Dies liest du dann bei der Anmeldung aus und rechnest die 90 Minuten minus die erfasste Zeit und schon hast du deine Restzeit.

Wie von meinem Vorgänger schon erwähnt, solltest du entweder auf MySQLi oder PHP Data Objects umsteigen.
 
Zurück
Oben