19. maj 2009 - 01:08Der er
12 kommentarer og 1 løsning
SELECT DISTINCT på VARCHAR ?
Hej
Hvordan vælger jeg et distinct tekstfelt på en varchar? Skal bruge unikke GroupName's
SELECT DISTINCT [GroupName] ,[ForumID] ,[Name] ,[Description] ,[Accesslevel] ,[Offtopic] ,[Weblog] FROM Forum WHERE Forum.AccessLevel <= ".$AccessLevel." ORDER BY GroupName, Name");
Den kode der laver selfølgelig en fejl.. men hvordan kommer jeg uden om det?
Det jeg forsøger er at få en funktion til at sende kategorierne tilbage sat pænt sammen. Hvis jeg fjerner distinct laver den bokse med samtlige GroupName's der har det rigtige indhold.. der er bare for mange af dem.
Så hvordan får jeg 'samlet' dem, så der kun kommer 1 boks pr. groupname ?
Lige nu kører det ved at den query der bliver returneret bliver kørt gennem et mssql_fetch_array og spyttet ud..
Warning: mssql_query() [function.mssql-query]: message: Column 'Forum.ForumID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. (severity 16) in C:\Inetpub\wwwroot\php.akvariefisk.dk\elements\classes\forum.php on line 45
function getKategorier($AccessLevel) { return mssql_query(" SELECT [ForumID] ,[Name] ,[Description] ,[Accesslevel] ,[Offtopic] ,[Weblog] FROM Forum WHERE Forum.AccessLevel <= ".$AccessLevel." GROUP BY [GroupName] ORDER BY GroupName, Name"); }
function getKategorier($AccessLevel) { return mssql_query(" SELECT GroupName FROM Forum WHERE Forum.AccessLevel <= ".$AccessLevel." GROUP BY [GroupName] ORDER BY GroupName"); }
Du skal jo ikke vælge de andre felter i din select liste.
function getKategorier($AccessLevel) { return mssql_query(" SELECT [GroupName],min([AccessLevel]) FROM Forum WHERE Forum.AccessLevel <= ".$AccessLevel." GROUP BY [GroupName] ORDER BY GroupName"); }
function getUnderKategorier($GroupName) { return mssql_query(" SELECT [ForumID] ,[Name] ,[Description] ,[Accesslevel] ,[Offtopic] ,[Weblog] ,[GroupName] FROM Forum WHERE [GroupName] = '".$GroupName."' ORDER BY Name"); }
Det virker nu. :)Smid lige nogle svar, så får i lidt point hver. :)
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.