WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   mySQL & Order By (https://www.wn.se/forum/showthread.php?t=8824)

oldgames 2005-07-08 14:30

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

David 2005-07-08 14:53

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.

oldgames 2005-07-08 15:44

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

eg0master 2005-07-08 16:53

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.

oldgames 2005-07-08 19:57

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å?

Tvartom 2005-07-08 23:08

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!


Alla tider är GMT +2. Klockan är nu 02:47.

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