2016-07-09 7 views
0

Ich bin neu in PHP und möchte diesen Code, der perfekt funktioniert in mysql aber weigert sich, in meinem PHP-Code zu arbeiten. Unten ist die besagte mysql-Abfrage ...mysql Variablen Deklaration mit Abfragen in PHP

set @maxDate = (select MAX(login) from logs where userId=3); 
set @currentDateTime = now();           set @diff = timestampdiff(minute, @maxDate, @currentDateTime);      set @duraMin = @diff DIV 60; 
set @duraSec = @diff MOD 60;             set @duration = concat(@duraMin,'min',' ',@duraSec,'sec');      

UPDATE logs SET logout= @currentDateTime, [email protected] WHERE userId = 3 AND [email protected]; 

Ich wäre wirklich dankbar, wenn mir hier geholfen werden könnte.

Dank

EDIT Die Idee hinter dem obige Code ist, dass es eine Tabelle namens Logs in meiner Datenbank mit Spalten userID, Login, Logout und Dauer ist. Jedes Mal, wenn sich ein Benutzer anmeldet, füge ich in die Logs-Tabelle, die Benutzer-ID und das Datum des Anmeldedatums ein, wobei der Rest der Felder null ist (Logout und Dauer). Beim Abmelden wird in der Tabelle ein Update durchgeführt, in dem die letzte Anmeldung "MAX (Login) WHERE userID = 'current_user_Id'" mit der entsprechenden userID und der Abmeldedatum Uhrzeit mit der entsprechenden berechneten Dauer eingefügt und auch eingefügt wird. Bitte ich wäre dankbar jede Hilfe oder sogar eine bessere Idee. Danke

+1

Wo ist die PHP-Nutzung? – chris85

+0

Danke für Ihr Anliegen. Ich war in der Lage, mich mit der Aktualisierung der Abmelde-Spalte mit der entsprechenden Anmeldung durch zu gehen, aber was bleibt, ist die automatische Aktualisierung der Spalte für die Dauer der gleichen Zeile, dh der Login- und Logout-Unterschied. Danke wieder –

Antwort

0

Schreiben Sie diesen Code in gespeicherte Prozedur und rufen Sie dies in PHP. Es hilft Ihnen, diese Abfrage leicht zu laufen und schneller

+0

danke, aber ich habe nicht viel Ahnung über gespeicherte Prozeduren in PHP .... wäre aber dankbar, wenn Sie mir helfen könnten –

0

Von PHP haben Sie zuerst connect to MySql.

Dann können Sie die Verbindung zu query the selected database verwenden.

Die Abfrage, die PHP an MySQL sendet, ist eine Zeichenfolge. Wenn die Abfrage erfolgreich ist, wird sie, zum Beispiel im Falle einer Abfrage select, eine row count>=0 zurückgeben.

In Ihrem Fall eine Update-Abfrage; Zahl zurückgegeben:

-1 -> Fehler in Abfrage

0 -> nichts zu aktualisieren/keine Änderungen gefunden

>0 -> Reihen

betroffen

PHP erhalten Sie keinen Grund geben, warum Ihr Anfrage fehlgeschlagen. Es übergibt nur die Zeichenfolge und gibt Ihnen die Rückmeldung von MySQL.