2016-11-30 7 views
-1

私はこれを自分自身で理解しようとしています。私はコーディングのいくつかのことを理解していますが、私はうまくいきません。まあ現在、プレミアムメンバーシップを購入できるチャットウェブサイトがあります。現在ログインしているユーザーのメンバーシップが切れるまで残っている日数を表示したいと思います。ユーザセッションログインのあるMySQLテーブルからの2つのタイムスタンプ間の差異

私の有効期限と有効期限の2つの日付は、タイムスタンプとして保存されています。

これは、これを作るのが私の試みですが、それはうまくいきませんでした:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "pass"; 
$dbname = "db"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT timestamp_activated, timestamp_expire FROM user_subscriptions WHERE id = :id LIMIT 1"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
$datetime1 = new DateTime('. $row["timestamp_activated"]. '); 
$datetime2 = new DateTime('. $row["timestamp_expire"]. '); 
$interval = $datetime1->diff($datetime2); 
echo $interval->format('%a'); 

    } 
} else { 
    echo "0 results"; 
} 

$conn->close(); 
?> 
+1

あなたは私の同情を持っていますが、「ありません仕事は非常に有用ではありません。何が起こるか、何が起こったのかを説明してください。 – e4c5

+0

あなたは明らかに異なるMySQL APIを混ぜています。 'WHERE id =:id'はPDOです。 mysqli_では動作しません。 –

+0

プレミアムメンバーシップの残り日数を表示します。 – Maichel

答えて

0

あなたはTIMESTAMPDIFFを使用してMySQLのクエリでこれを扱うことができる:

SELECT TIMESTAMPDIFF(DAY, timestamp_activated, timestamp_expire) AS daysRemaining 
FROM user_subscriptions 
WHERE id = :id 
LIMIT 1 
+0

'現在ログインしているユーザーのメンバーシップが満了するまで残っている日数を表示します。この回答はどのようにしてこの質問に対処できますか? –

関連する問題