Avatar billede horizon Nybegynder
05. april 2005 - 22:06 Der er 6 kommentarer og
1 løsning

Ret i Sortering

Jeg har sat mig ned for at kode et forum, men nu er jeg allerede løbet ind i første problem.
Sortering af kategorier

MySql tabellen ser sådan ud: (Test_Forum_Kategorier)
KategoriID tinyint(4) UNSIGNED auto_increment
Sortering tinyint(4) UNSIGNED 0
Navn tinytext

Jeg starter med at lave den side hvor jeg kan oprette en kategori (synes det er meget rart at have en adminfunktion som virker til at starte med)

og der har jeg lavet dette:

<form action="OpretKategori.php" method="post">

<table width="450" border="1" cellspacing="0" cellpadding="0" bordercolor="#000000">

<tr>
<td width="150">Navn</td>
<td><input type="text" name="Navn" size="30"></td>
</tr>

<tr>
<td width="150">R&aelig;kkef&oslash;lge</td>
<td>

<select name="Sortering" size="1">
<option selected value="sidst">Sidst</option>
<?php

include('../Kilder/Access.php');

$KatRes = mysql_query("SELECT Navn, Sortering FROM Test_Forum_Kategorier ORDER BY Sortering DESC")or die("MySql Kategori fejl " . mysql_error());

while($Kat = mysql_fetch_array($KatRes)) {       
$i = $Kat['Sortering']++;

echo '<option value="'.$i.'">Efter '.$Kat[Navn].'</option>';

}

mysql_close();

?>
<option value="1">F&oslash;rst</option>
</select></td>
</tr>

</table>

<p><input type="submit" value="Opret"></p>

</form>

Men spørgsmålet er nu mht. Sorteringen, hvis vi nu siger at jeg har oprettet disse 3 kategorier:

Mæh (Sortering 3)
Lam (Sortering 2)
Får (Sortering 1)

Hvis vi nu siger at jeg laver en ny kategori som f.eks. hedder "Kamel" som jeg vil have ind efter Får som jo har Sortering 1 da det er den første.
Så skal "Kamel" have Sortering 2, så altså Lam og Mæh (plus evt. andre kategorier derudover skal plusses med 1, hvordan gør jeg det på en effektiv og hurtig måde?
Avatar billede cpfrande Nybegynder
06. april 2005 - 08:41 #1
Halløjsa,

Hvis du ønsker en sortering baseret efter navnene, kan du blot lave en ORDER BY Navn DESC
Avatar billede horizon Nybegynder
06. april 2005 - 11:39 #2
nej den sorteres efter tal det synes jeg virker mest logisk, men regner med at det kan ordnes med en løkke? har jeg ret?
Avatar billede cpfrande Nybegynder
06. april 2005 - 13:44 #3
Hvorfor er det mest logisk?? Hvis du ønsker en sortering iflg. navn i omvendt rækkefølge (som det vil være, hvis Kamel kom ind som Sortering 2), vil det da være nemmere blot at sortere efter navnet, fremfor at have en position, der angiver det i stedet.
Avatar billede horizon Nybegynder
06. april 2005 - 21:00 #4
Jamen hvis vi nu siger at jeg har Mæh Lam Får og efter Mæh og mellem Lam vil jeg have Ål, det kan man jo ikke med sortering efter navn...
Avatar billede cpfrande Nybegynder
07. april 2005 - 07:00 #5
Halløjsa,

Nej, det er korrekt, men det dit eksempel i den første fremgav en omvendt navne-sortering, så gik egentlig ud fra, at det var således.

Hvis det er sådan du vil, skal du have en sorteringsrække, hvor du gemmer talene i.
I så fald vil det være smartest, at dit script placerer den som den sidste i sorteringen. Kan den gøre ved at finde det højste tal i sorteringen, trække den værdi ud og plusse med 1.

Jeg vil dog anbefale, at du benytter sorteringen, således at 1 er øverst (mindst) og derefter går de navnene trinvist ned af... f.eks.:
Får (Sortering 1)
Lam (Sortering 2)
Mæh (Sortering 3)

For derefter at kunne rykke rundt på dem, skal du have et script, der bytter om på to tuplers sorteringsnumre.

Lad os sige du har følgende sorteringer:
Får (Sortering 1)
Lam (Sortering 2)
Mæh (Sortering 3)
Hest (Sortering 4)
Ål (Sortering 5)

Du vil gerne have Hest om mellem Lam og Mæh.
Du klikker på "Op" ved "Hest", hvorefter sorteringsnummeret for Mæh og Hest byttes om. Altså:
Får (Sortering 1)
Lam (Sortering 2)
Hest (Sortering 3)
Mæh (Sortering 4)
Ål (Sortering 5)

Ligeledes kan du gøre, når du skal ned.
Avatar billede horizon Nybegynder
07. april 2005 - 15:04 #6
Hvor simpelt kan det være ;P mange tak for det, det er jo nemt og ligetil.
Avatar billede cpfrande Nybegynder
07. april 2005 - 19:30 #7
Halløjsa,

Det har det i hvert fald været de gange, hvor jeg har skulle arbejde med det! :-)

God fornøjelse, og tak for points!

- Kristian
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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