Avatar billede koch Nybegynder
26. februar 2005 - 19:15 Der er 11 kommentarer og
1 løsning

sortering enten efter navn, nr, år osv.

Jeg vil gerne have lavet sådan at jeg kan sortere de data i min tabel som jeg har fået fra min database. Brugeren skal selv vælge hvad der skal sorteres efter ved at klikke. Det minder vel stort set om det der er brugt i tallerne i phpMyAdmin.

Er der en der har en tutorial eller et eksempel?
Avatar billede alister_crowley Nybegynder
26. februar 2005 - 19:29 #1
øhh, i mysql bruges ORDER BY til at bestemme rækkefølgen.
resten afhænger af dit programmeringsprog.
Avatar billede koch Nybegynder
26. februar 2005 - 19:33 #2
Der skulle stå 'tabellerne i phpmyadmin'!
Jeg er klar over at man sorterer sådan og det har jeg også brugt når dataene vises når man kommer ind på siden, men så skal brugeren have mulighed for at ændre rækkefølgen på dataene...
Avatar billede alister_crowley Nybegynder
26. februar 2005 - 19:37 #3
rækkefølgens ændres med

ASC (standard, 1 -> 10)
DESC (10 -> 1)
Avatar billede koch Nybegynder
26. februar 2005 - 21:35 #4
Det siger du nok, men kan du hjælpe lidt mere...

Som det er nu, sorteres det sådan her:
$query = mysql_query("SELECT * FROM carlist order by Year");
echo("og her skrives variablerne(navn, id, år, antal) ud...");

Hvordan får jeg så ændret så jeg kan lave en form for link så jeg ved klik kan ændre hvad der sorteres efter?
Avatar billede hmortensen Nybegynder
27. februar 2005 - 08:04 #5
Du kunne gøre sådan her:
<a href="side.php?sort=year">År</a>
<a href="side.php?sort=navn">Navn</a>

$sort = (isset($_GET['sort'])) ? $_GET['sort'] : "year";
$query = mysql_query("SELECT * FROM carlist ORDER BY ".$sort);
Avatar billede koch Nybegynder
27. februar 2005 - 09:43 #6
For lige at forstå det:
  $sort = (isset($_GET['sort']))
Hvis der er en værdi efter ? i adresselinien så sættes $sort lig denne.

  ? $_GET['sort'] : "year";
Hvad gør denne linie? Det er spørgsmålsregnet og kolonnet jeg ikke er med på!

  $query = mysql_query("SELECT * FROM carlist ORDER BY ".$sort);
Så sorteres der efter $sort, og hvad gør punktummet?
Avatar billede koch Nybegynder
27. februar 2005 - 09:46 #7
det betyder nok, at den sorterer efter year hvis ikke der er noget i adresselinien, men jeg vil gerne lige forstå syntaksen og tegnene der er brugt...
Avatar billede hmortensen Nybegynder
27. februar 2005 - 09:46 #8
Det er en anden måde at skrive en if sætning på.

$result = (kriteria) ? true : false;

Ang. punktum:
Bruges til at skelne mellem strenge og variabler.

"Her er en streng ".$OgEnVar." og noget mere streng";
Avatar billede hmortensen Nybegynder
27. februar 2005 - 09:50 #9
Altså det kunne skrives sådan her:

if (isset($_GET['sort']))
{
  $sort = $_GET['sort'];
} else {
  $sort = "year";
}
Avatar billede koch Nybegynder
27. februar 2005 - 10:27 #10
tak for forklaringen og svaret, det var en stor hjælp. Smid et svar.

I øvrigt: Kan jeg sætte denne
    $sort = (isset($_GET['sort'])) ? $_GET['sort'] : "year";

i starten af siden, der hvor jeg connecter og så bruge den meget længere ned på siden? Jeg skal nemlig bruge den til noget andet også, bare så jeg ikke behøver at sætte den to gange.
Avatar billede hmortensen Nybegynder
27. februar 2005 - 10:52 #11
Ja, det kan du sagtens.

Variablen gælder indtil siden forlades, eller resettes.
Avatar billede koch Nybegynder
27. februar 2005 - 11:17 #12
Kanon. Jeg takker.
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