2016-09-18 6 views
0

ユーザーがログインしている最古の時刻/日付を出力したいが、1日に欲しい。ユーザーがログインした最初の時刻/日付を出力できるようになりましたが、それは日常的ではありません。このクエリは、ユーザーがログインしている最古の日付/時刻を表示することによってのみ機能し、日付を考慮せず、ユーザーがログインした最も早い時刻/日付を出力します。私は誰かが私を助けることができるといいですどうもありがとうございます!ユーザーがログインした日の最も早い時刻/日付を出力する方法はありますか?

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "september-system"; 

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

$sql = "SELECT DISTINCT User_ID, MIN(Time) FROM records GROUP BY User_ID ORDER BY User_ID, MIN(Time) DESC"; 
$result = $conn->query($sql); 

if (mysqli_num_rows($result) > 0){ 
echo "<table><tr><th>User ID</th><th>Date/Time</th></tr>"; 
// output data of each row 
while($row = $result->fetch_assoc()) { 
    echo "<tr><td>" . $row["User_ID"]. "</td><td>" . $row["MIN(Time)"]. " </td></tr>"; 
} 
echo "</table>"; 
} else { 
echo "0 results"; 
} 

$conn->close(); 

答えて

2

ただ、グループのユーザーと日付の両方によって:SELECT DISTINCTGROUP BYと適切なることはほとんどありませんことを

SELECT User_ID, DATE(Time) as theday, MIN(Time) 
FROM records 
GROUP BY User_ID, DATE(Time) 
ORDER BY User_ID, MIN(Time) DESC; 

注ところで

は、ここでのコードです。 SQLを習得している場合は、GROUP BYを使用し、言語に慣れるまでSELECT DISTINCTを気にしないでください。

+0

ユーザーごとに最も古い日付/時刻を1つだけ出力するにはSELECT DISTINCTを使用する必要があると思います(?)申し訳ありません、PHPとMySQLを初めて使用しています –

+0

@JopethDeza。 。 。あなたの質問が表現されている方法では、毎日各ユーザーが一番早い時間を望んでいることを示唆しています。別の質問がある場合は、サンプルデータと希望の結果と共に*別の質問として尋ねます。 –

+0

これはまさに私が欲しいものです。あなたが以前に提案したものを試してみます。申し訳ありませんが、私は意味がない場合は、とにかく応答のおかげで。 –

関連する問題