Avatar billede jkampmann Nybegynder
28. november 2007 - 19:10 Der er 8 kommentarer og
1 løsning

Online brugere skal vises i øverst række

Hej.
Jeg har lavet et "venner"-system, hvor man kan se sine venner på mit site.

Ligenu viser den bare navene på ens venner man har.

Jeg ønsker den tager dem som er online først (den som loggede på til sidst) øverst.

TABEL: venner indenholder "brugernavn" og "ven"
-- brugernavn er ens brugernavn, f.eks $_SESSION['brugernavn'] og ven er ens ven. F.eks "Google"

Så har jeg en tabel hvor brugerne er online i.

TABEL: online_brugere indenholder "brugernavn" og "tid"

Så skal den udtrække en liste over ens venner, hvor dem som er online kommer først, og dem som ikke er, kommer i sidste række - hvis i forstår?

F.eks brugeren Eksperten er min ven og han er online, så har jeg Birthe som er online, og Karlo som er offline. Så skal den udskrive

Eksperten
Birthe
Karlo

På forhånd tak!
Avatar billede arne_v Ekspert
28. november 2007 - 20:30 #1
... ORDER BY onlinestatus, logintidspunkt DESC, navn

eller lignende
Avatar billede jkampmann Nybegynder
28. november 2007 - 20:50 #2
Øhm - hvordan det? Hvad så hvis den ikke findes i online_brugere tabellen? Så melder den jo fejl..

SELECT venner.ven FROM venner ORDER BY online_brugere.tid ?????
Avatar billede arne_v Ekspert
29. november 2007 - 01:24 #3
Du kan ikke sortere efter noget som ikke er i din tabel.

Prøv at fortæl hvilke felter du har og hvordan du vil have sorteret.
Avatar billede jkampmann Nybegynder
29. november 2007 - 02:48 #4
Har en tabel der hedder venner og en tabel der hedder online_brugere.

Så skal den sortere efter dem som er online (de skal vises først), hvis de findes i tabellen online_brugere

Noget hen af SELECT ven FROM venner WHERE brugernavn = 'jkampmann' ORDER BY (hvis brugeren er i online_brugere tabellen)

Hvis det kan lade sig gøre..
Avatar billede arne_v Ekspert
29. november 2007 - 03:08 #5
så må vi prøve:

SELECT venner.ven,COUNT(online_brugere.id)
FROM venner LEFT JOIN online_brugere ON venner.id=online_brugere.id
WHERE brugernavn = 'jkampmann'
GROUP BY ven
ORDER BY COUNT(online_brugere.id) DESC
Avatar billede jkampmann Nybegynder
29. november 2007 - 15:36 #6
SELECT venner.ven, COUNT(online_brugere.id)
FROM venner LEFT JOIN online_brugere ON venner.brugernavn='kampmann'
WHERE brugernavn = 'kampmann'
GROUP BY ven
ORDER BY COUNT(online_brugere.id) DESC

Udskriver

#1052 - Column 'brugernavn' in where clause is ambiguous.

Jeg har følgende lige p.t:

Venner tabel:

CREATE TABLE `venner` (
  `id` int(11) NOT NULL auto_increment,
  `brugernavn` varchar(32) collate latin1_general_ci NOT NULL,
  `ven` varchar(32) collate latin1_general_ci NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;

--
-- Data dump for tabellen `venner`
--

INSERT INTO `venner` VALUES (1, 'Kampmann', 'Hygge');
INSERT INTO `venner` VALUES (2, 'Hygge', 'Kampmann');
INSERT INTO `venner` VALUES (3, 'Kampmann', 'Steven');
INSERT INTO `venner` VALUES (4, 'Steven', 'Kampmann');


Og online_brugere:

CREATE TABLE `online_brugere` (
  `id` int(11) NOT NULL auto_increment,
  `brugernavn` varchar(32) collate latin1_general_ci NOT NULL,
  `tid` int(11) NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4 ;

--
-- Data dump for tabellen `online_brugere`
--

INSERT INTO `online_brugere` VALUES (3, 'Kampmann', 1196346731);
Avatar billede jkampmann Nybegynder
29. november 2007 - 19:34 #7
Er det umuligt?
Avatar billede arne_v Ekspert
30. november 2007 - 03:01 #8
SELECT venner.ven,COUNT(online_brugere.id)
FROM venner LEFT JOIN online_brugere ON venner.id=online_brugere.id
WHERE venner.brugernavn = 'jkampmann'
GROUP BY venner.ven
ORDER BY COUNT(online_brugere.id) DESC
Avatar billede jkampmann Nybegynder
10. december 2007 - 17:21 #9
Returnerer 0.

Jeg lavede en while ( .. ) med ens venner, og lavede en session hvor navnene stod først og deres status.

$Users["arne_v"][0] f.eks, hvor 0 er ikke online, og 1 er online, også lavede jeg en liste :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester