MySQLi Group by
Hej,Det er godt nok lang tid siden at jeg har oprettet et spørgsmål herinde, men jeg har altså lidt problemer med en forespørgsel til min MySQL database.
Tabellen
CREATE TABLE `dpp_statistics` (
`id` int(11) NOT NULL,
`date_time` datetime NOT NULL,
`remote_addr` varchar(15) COLLATE utf8_danish_ci NOT NULL,
`php_self` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`query_string` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`http_referer` varchar(255) COLLATE utf8_danish_ci NOT NULL,
`http_user_agent` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
Min forespørgsel
if($results = $mysqli->query("SELECT DATE_FORMAT(`date_time`, '%d.%m.%Y %H:%i:%s') AS `date_time`, `remote_addr`, `php_self` FROM `dpp_statistics` ORDER BY `id` DESC")) {
while($row = $results->fetch_array()) {
$date_time = $row["date_time"];
$remote_addr = $row["remote_addr"];
$php_self = $row["php_self"];
$output .= "<div class=\"box-a\">\n";
$output .= "<p>" . $date_time . "</p>\n";
$output .= "</div>\n";
$output .= "<div class=\"box-a\">\n";
$output .= "<p><a href=\"http://" . $_SERVER["HTTP_HOST"] . $_SERVER["PHP_SELF"] . "?ip=" . urlencode($row["remote_addr"]) . "\" title=\"" . $remote_addr . "\">" . $remote_addr . "</a></p>\n";
$output .= "</div>\n";
$output .= "<div class=\"box-b\">\n";
$output .= "<p>" . $php_self . "</p>\n";
$output .= "</div>\n";
$output .= "<div class=\"box-clear\">\n";
$output .= "</div>\n";
}
$results->close();
}
Det jeg gerne vil er følgende:
Resultatet skal være samlet (group by) i `remote_addr` og sorteret nedadgående (order by `id` desc).
Bruger jeg ovenstående forespørgsel sorterer den ikke korrekt, når det kommer op på serveren hos one.com.
Jeg kunne endvidere godt tænke mig at resultatet viser den seneste forekomst af `php_self` der hører til `remote_addr`.
Jeg har læst mig lidt frem til at group_concat måske er løsningen.