mysql sorteren op meerdere dingen
weet iemand hoe ik dat moet doen?
bvd,
bunkie
FROM tabel
ORDER BY totaal DESC
en nog een vraagje da hier bij hoort:
ik wil da hij bij sommige ACS sorteerd en bij andere DESC ik kan dat als variable in een link stoppen maar hoe kan ik dat het best doorvoeren in de mysql
ik d8t ik doe het zo:
// $order = waarop hij moet sorteren
// volgorde = DESC of ACS
SELECT * FROM Coureur ORDER BY '$order' '$volgorde'
maar dit werkt nie :(
weet iemand hoe dit wel kan?
Het is ASC en geen ACS.
had het wel goed in script staan :)
maar ik heb nog steeds geen oplossing :(
of zou deze manier gewoon moeten werken en doe ik gewoon iets fout :S?
Het is handiger als je precies vertelt welke waarden je uit je tabel wilt laten rollen en in welke volgorde je de waarden op wat voor manier wilt laten sorteren.
tabel coureurs
met de velden:
~naam(varchar)
~leeftijd(int)
~eigenschap1(int)
~eigenschap2(int)
~eigenschap3(int)
~eigenschap4(int)
~eigenschap5(int)
~waarde(int)
~salaris(int)
~vraagprijs(int)
dit zijn de velden van de tabel. nu wil da mensen de tabel kunnen sorteren op: naam, leeftijd, totaal eigenschappen(dus alle eigenschappen bij elkaar opgeteld) ,waarde,salaris,vraagprijs
dit is dus wat ik wil ik dacht dat te doen door via een link met $_GET aan te geven waarop hij moet sorteren dit werkte alleen kwam ik bij het probleem dat ik wil dat hij alle eigenschappen neemt om te sorteren en niet 1.
verder kwam ik bij het probleem dat sommige ASC moeten worden gesorteerd en andere DESC
ik hoop dat dit een betere beschrijving is van mijn probleem :)
Dan ziet je link er bv zo uit:
pagina.php?sorteer=naam&volgorde=ASC
via $_GET['sorteer'] krijg je dan het veld en via $_GET['volgorde'] de volgorde.
Ik snap nog niet precies wat je bedoelt met:
"alleen kwam ik bij het probleem dat ik wil dat hij alle eigenschappen neemt om te sorteren en niet 1"
maar kan ik als ik dan heb:
$sorteer = $_GET['sorteer'];
$volgorde = $_GET['volgorde'];
kan ik dan gewoon?:
$sql = "SELECT * FROM Coureur ORDER BY '$order' '$volgorde'";
Gewijzigd op 20/02/2006 09:25:00 door Jan Koehoorn
SELECT * FROM tabel ORDER BY veld1 ASC, veld2 ASC, veld3DESC, veld4 DESC, veld5 ASC, veld6 DESC (etc..)
@ Pholeron: nee, dat bedoelt hij niet. Ik maak wel een voorbeeldje
pagina.php?sorteer=optellen&volgorde=DESC
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset ($_GET['sorteer'], $_GET['volgorde']) {
if ($_GET['sorteer'] = 'optellen') {
$sql = "
SELECT veld1, veld2,(eigenschap1 + eigenschap2 + eigenschap3 + eigenschap4 + eigenschap5) AS totaal
FROM coureurs
ORDER BY totaal " . $_GET['volgorde'];
}
else {
$sql = "
SELECT veld1, veld2
FROM coureurs
ORDER BY " . $_GET['sorteer'] . " " . $_GET['volgorde'];
}
// en hier je query uitvoeren
}
?>
if (isset ($_GET['sorteer'], $_GET['volgorde']) {
if ($_GET['sorteer'] = 'optellen') {
$sql = "
SELECT veld1, veld2,(eigenschap1 + eigenschap2 + eigenschap3 + eigenschap4 + eigenschap5) AS totaal
FROM coureurs
ORDER BY totaal " . $_GET['volgorde'];
}
else {
$sql = "
SELECT veld1, veld2
FROM coureurs
ORDER BY " . $_GET['sorteer'] . " " . $_GET['volgorde'];
}
// en hier je query uitvoeren
}
?>
edit: en bij veld1, veld2 enz natuurlijk even je eigen veldnamen invullen.
Gewijzigd op 20/02/2006 09:30:00 door Jan Koehoorn