2016-09-18 2 views
0

Я хочу вывести самое раннее время/дату, когда пользователь вошел в систему, но я хочу его в день. Теперь я могу вывести самое раннее время/дату, когда пользователь вошел в систему, но это не ежедневно. Этот запрос работает только, показывая мне самую раннюю дату/время, когда пользователь вошел в систему, он не учитывает дату, он просто выводит самое раннее время/дату, когда пользователь вошел в систему. Извините за плохой английский. Я надеюсь, что кто-то может мне помочь. Спасибо огромное!Есть ли способ вывести самое раннее время/дату в день, когда пользователь вошел в систему?

Кстати, вот код:

$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 User_ID, DATE(Time) as theday, MIN(Time) 
FROM records 
GROUP BY User_ID, DATE(Time) 
ORDER BY User_ID, MIN(Time) DESC; 

Обратите внимание, что SELECT DISTINCT почти никогда не целесообразно с GROUP BY. Если вы изучаете SQL, то просто используйте GROUP BY и не беспокойтесь с SELECT DISTINCT, пока вам не станет более комфортно с языком.

+0

Я думаю, что мне нужно использовать 'SELECT DISTINCT' для вывода только одной ранней даты/времени для пользователя (?) Извините, я новичок в PHP и MySQL –

+0

@JopethDeza. , , Как ваш вопрос сформулирован, он предполагает, что вы хотите получить самое раннее время для каждого пользователя в каждый день. Если у вас другой вопрос, задайте вопрос * другой *, а также образцы данных и желаемые результаты. –

+0

Это именно то, что я хочу. Я попробую тот, который вы предложили ранее. Извините, если я не имею никакого смысла, все равно спасибо за ответ. –

Смежные вопросы