PHP beginner |
|
Ik heb nu een tabel in SQL, die ziet er zo uit:
CREATE TABLE `pagelog2` (
`id` int(5) unsigned NOT NULL auto_increment,
`ip` varchar(50) NOT NULL default '',
`mid` int(10) NOT NULL default '0',
`locatie` varchar(50) NOT NULL default '',
`tijddatum` decimal(20,0) default NULL,
`loggedin` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6568 DEFAULT CHARSET=latin1;
CREATE TABLE `pagelog2` ( `id` int(5) UNSIGNED NOT NULL AUTO_INCREMENT, `ip` varchar(50) NOT NULL DEFAULT '', `mid` int(10) NOT NULL DEFAULT '0', `locatie` varchar(50) NOT NULL DEFAULT '', `tijddatum` decimal(20,0) DEFAULT NULL, `loggedin` int(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=6568 DEFAULT CHARSET=latin1;
Daarin komen álle bezoekers per hit, dus waar ze zitten met welk ip, gebruikersID, etc.
Nu komt dat dus door elkaar doordat er meerdere gebruikers online zijn. Ik kan wel gaan sorteren, maar hoe zorg ik nou dat ik per IP de laatste actieve pagina inlees? Zodat ik geen lange wachttijden heb om te rekenen?
---
Edit:
Ik heb het zo opgelost:
<?php
$query = mysql_query("SELECT *,MAX(tijddatum) AS nTijdDatum FROM `pagelog2` WHERE `loggedin`='0' GROUP BY `ip` ORDER BY `nTijdDatum` DESC") or die(mysql_error());
while($fetch = mysql_fetch_assoc($query)) {
$ip = $fetch['ip'];
$fetch3 = mysql_fetch_assoc(mysql_query("SELECT * FROM `pagelog2` WHERE `ip`='" . $ip . "' AND `loggedin`='0' AND `tijddatum`='" . $fetch['nTijdDatum'] . "'"));
//En dan haal ik alle data uit $fetch3
}
?>
<?php $query = mysql_query("SELECT *,MAX(tijddatum) AS nTijdDatum FROM `pagelog2` WHERE `loggedin`='0' GROUP BY `ip` ORDER BY `nTijdDatum` DESC") or die(mysql_error()); $ip = $fetch['ip']; $fetch3 = mysql_fetch_assoc(mysql_query("SELECT * FROM `pagelog2` WHERE `ip`='" . $ip . "' AND `loggedin`='0' AND `tijddatum`='" . $fetch['nTijdDatum'] . "'")); //En dan haal ik alle data uit $fetch3 } ?>
Maar kan dat ook korter? Dus dat het in 1 query zit?
|