Vis online venner øverst
Hej alle sammen :)Jeg har prøvet at spørger før og det er muligt at få ens venner på sin venneliste øverst på listen hvis de er online.
Jeg fik rigtig god hjælp men desværre virkede resultatet ikke :(
Tabellen for brugere:
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`brugernavn` varchar(25) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`navn` varchar(255) NOT NULL default '',
`born_day` int(11) NOT NULL default '0',
`born_month` int(11) NOT NULL default '0',
`born_year` int(11) NOT NULL default '0',
`landsdel` varchar(255) NOT NULL default '',
`created` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`kon` set('Dreng','Pige') NOT NULL default '',
`tekst` longtext NOT NULL,
`billede` set('yes','no') NOT NULL default '',
`postnr` int(4) NOT NULL default '0',
`born` date NOT NULL default '0000-00-00',
PRIMARY KEY (`id`)
);
Min online tabel er sådan her ud:
CREATE TABLE `online_profiles` (
`date` int(11) NOT NULL default '0',
`brugernavn` varchar(25) default NULL,
`page` varchar(255) default NULL,
`user_id` int(11) NOT NULL default '0'
);
Og til sidst venneliste tabellen:
CREATE TABLE `venneliste` (
`id` int(11) NOT NULL auto_increment,
`to_user` int(11) NOT NULL default '0',
`from_user` int(11) NOT NULL default '0',
`date` longtext NOT NULL,
`godkendt` set('yes','no') NOT NULL default '',
PRIMARY KEY (`id`)
);
Vi kom frem til dette:
$sql = "
SELECT
f.*
,t.brugernavn as tilbruger
,fra.brugernavn as frabruger
,IF( o.user_id IS NULL, 0, 1 ) as online
FROM
venneliste f
INNER JOIN
users t
ON
f.to_user = t.id
INNER JOIN
users fra
ON
f.from_user = fra.id
LEFT OUTER JOIN
online_profiles o
ON
f.id = o.user_id
WHERE
(f.to_user = '".$_GET['id']."'
OR f.from_user = '".$_GET['id']."')
AND f.godkendt = 'yes'
ORDER BY
online
,f.id DESC
LIMIT
$vis_fra, $pr_side";
Men det sætter dem ikke øverst på vennelisten :(
Nogle der kan hjælpe ? evt lave en ny query / kode :D?