Kom ihåg mig?
Home Menu

Menu


mySQL & Order By

Ämnesverktyg Visningsalternativ
Oläst 2005-07-08, 14:30 #1
oldgames oldgames är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2004
Inlägg: 7
oldgames oldgames är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2004
Inlägg: 7
Hej.

Håller på att lagar ett poll script i php/mysql, och än så lenge så fungerar det som det skal. Frågan jag har är:
Vid hjälp av Order By, finns det nått sätt att sortera upp till 7 rows i en tabell, efter högsta värdet?
(tabellen är uppbyggt så här: poll_id, alt1, alt2, alt3, alt4, alt5, alt6, alt7 - poll_id skal inte inräknas)

Det jag vil uppnå är at om t.ex. alt7 har det högsta värdet, så skal den komma först, sen skal dom sorteras efter nest högsta osv.
Finns det nått snabbt/enkelt sätt att åstadkomma detta, vid hjälp av ORDER BY i mysql_query'en, eller måste jag göra om tabellen i databasen?

Har forsökt kolla på mysql's hemsida, men hittar inget vettigt om just den funktionen, som löser mitt problem.

Mvh.
Martin
oldgames är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-07-08, 14:53 #2
Davids avatar
David David är inte uppkopplad
Flitig postare
 
Reg.datum: Aug 2003
Inlägg: 477
David David är inte uppkopplad
Flitig postare
Davids avatar
 
Reg.datum: Aug 2003
Inlägg: 477
Jag är inte helt hundra på vad det är du menar.

Du kan ju göra en SELECT MAX(alt1) för varje altx och sedan sätta ihop en SELECT * FROM tabell ORDER BY alt7, alt4, alt 3, alt9 och så vidare i ordning.
David är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-07-08, 15:44 #3
oldgames oldgames är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2004
Inlägg: 7
oldgames oldgames är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2004
Inlägg: 7
Om du tenker att dom förskällige rows innhåller följande:
alt1 = 30
alt2 = 25
alt3 = 35
alt4 = 10
alt5 = 15
alt6 = 20
alt7 = 40

så vill jag att dom skal sorteras som under (högsta värdet först, och sen näst högsta osv):
alt7
alt3
alt1
alt2
alt6
alt5
alt4

måste jag då lägga til mysql_query's som hämtar ut detta, och sen sortera, eller kan jag använda mig av följande kod:
Citat:
$querys = mysql_query("SELECT * FROM 'tabell' WHERE id='$id' ORDER BY alt1,alt2,alt3,alt4,alt5,alt6,alt7 ASC")
* or die("Could not execute query. Reason: " . mysql_error());
while($query_data = mysql_fetch_array($querys)) {
echo "
$query_data[1]

$query_data[2]

$query_data[3]

$query_data[4]

$query_data[5]

$query_data[6]

$query_data[7]
";
}
så att det bliver som beskrivit ovan?

Hoppas det blev mer forståeligt nu

Mvh.
Martin
oldgames är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-07-08, 16:53 #4
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
eg0master eg0master är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2004
Inlägg: 898
Nej det finns inget sätt mig veterligen att sortera om kolumner. Däremot kan du ju i PHP sortera om arrayen med data om du hemskt gärna vill det.

Med lite våld och subquerys kan man ju ordna det, men det blir extremt fult & oläsligt...
Bygg om din tabell (skulle jag föredra) eller sortera i arrayen i php.
eg0master är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-07-08, 19:57 #5
oldgames oldgames är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2004
Inlägg: 7
oldgames oldgames är inte uppkopplad
Nykomling
 
Reg.datum: Mar 2004
Inlägg: 7
på hvilket sätt tycker du då att tabellen skulle varit uppbyggd?
alt1 - votes - poll_id
...
alt7 - votes - poll_id

och sen sortera det på så sätt menar du? eller var det nånting annat du tänkte på?
oldgames är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-07-08, 23:08 #6
Tvartom Tvartom är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 86
Tvartom Tvartom är inte uppkopplad
Medlem
 
Reg.datum: Oct 2004
Inlägg: 86
Citat:
Originally posted by oldgames@Jul 8 2005, 18:57
på hvilket sätt tycker du då att tabellen skulle varit uppbyggd?
alt1 - votes - poll_id
id poll_id alt votes

Japp, verkar lämpligt!
Då kan även en poll ha fritt antal alternativ!
Och sorteringen blir enkel!
Tvartom är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 14:13.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017