Avatar billede bengtwendt Nybegynder
10. januar 2003 - 08:32 Der er 7 kommentarer og
1 løsning

Valg af sortering

Hej
Jeg har en DB hvor man skal kunne sortere ved at klikke på overskriften, men det vil ikke lykkes for mig, hvad har jeg gjort forkert?

Kode:

<tr>
<td width="7%"><b><a href="?valg=arkiv">Arkiv Nr</a></b></td>
<td width="20%"><b><a href="?'valg'=kpmponist">Titel</a>Komponist</b></td>
<td width="20%"><b><a href="?'valg'=titel">Titel</a></b></td>
<td width="20%"><b><a href="?'valg'=anvendelse">Anvendelse</a></b></td>
</tr>

<?

echo $_POST['valg'];


echo "<tr ></tr>";

$conn = mysql_connect("localhost", "****", "****");
mysql_select_db("bbbnoder");

$result = mysql_query("select * from noder order by  $valg");


while ($row = mysql_fetch_array($result)) {
extract($row);
$number = $number + 1;
if($number % 2 == 0){
$color="#c0c0c0";}else{$color="#eeeeee";}
echo "<tr bgcolor=$color>";
echo "<td>$Nr</td>";
echo "<td>$komponist</td>";
echo "<td>$titel</td>";
echo "<td>$anvendelse</td>";
echo "<td>$valg</td>";
echo "</tr>";
}
$number = 0;
mysql_close();

?>

Venligst Bengt
Avatar billede backside Nybegynder
10. januar 2003 - 08:56 #1
<a href="?'valg'=kpmponist">
En lille trykfejl går jeg ud fra. ;)
Avatar billede schaefner Juniormester
10. januar 2003 - 08:58 #2
Ved ikke om det gør nogen forskel, men prøv at ændre det her:

<a href="?'valg'=kpmponist">
til
<a href="?valg=kpmponist">
Avatar billede schaefner Juniormester
10. januar 2003 - 09:07 #3
og som backside siger, der er også en stavefejl
Avatar billede bengtwendt Nybegynder
10. januar 2003 - 09:10 #4
Ja jeg kan se der er en lille slåfejl, men det er kun i den gruppe, ikke i titel, eksempelvis.

Bengt
Avatar billede schaefner Juniormester
10. januar 2003 - 09:26 #5
den her virker hos mig:

<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="7%"><b><a href="?valg=arkiv">Arkiv Nr</a></b></td>
<td width="20%"><b><a href="?valg=komponist">Komponist</a></b></td>
<td width="20%"><b><a href="?valg=titel">Titel</a></b></td>
<td width="20%"><b><a href="?valg=anvendelse">Anvendelse</a></b></td>
<td width="7%"><b>Valg</b></td>
</tr>
<?
// Hvis der ikke er valgt noget fra start
$valg = $_GET['valg'];
if ($valg == "") $valg = "arkiv";
echo "<tr><td colspan=\"5\" width=\"100%\">Du har valgt: $valg som sortering</td></tr>";
$conn = mysql_connect("-","-","-");
mysql_select_db("-");
$result = mysql_query("SELECT * FROM noder ORDER BY $valg");
while ($row = mysql_fetch_array($result)) {
    extract($row);
    $number = $number + 1;
    if($number % 2 == 0){$color="#c0c0c0";}else{$color="#eeeeee";}
    echo "<tr bgcolor=\"$color\">";
    echo "<td>$arkiv</td>";
    echo "<td>$komponist</td>";
    echo "<td>$titel</td>";
    echo "<td>$anvendelse</td>";
    echo "<td>$valg</td>";
    echo "</tr>";
}
$number = 0;
mysql_close();
?>
</table>
Avatar billede bengtwendt Nybegynder
10. januar 2003 - 09:58 #6
Ja det gør den da, jeg var da tæt på resultatet.

Tak for hjælpen
Avatar billede bengtwendt Nybegynder
10. januar 2003 - 10:04 #7
Men under sortering af arkivnr kommer de i rækkefølge:
1, 10, 100, 101, 1000, 1001.

Jeg ville helst havde dem i 1,2,3,4 osv osv

Bengt
Avatar billede jakoba Nybegynder
10. januar 2003 - 14:45 #8
så sørg for at det er tal du sammenligner og ikke strenge når det er arkivnr
bogstavet '2'  har højer bogstavkode end bogstavet '1' så ethvert tal der begynder med 2 vil (som streng) komme efter alle tal der begynder med '1' (ligesom 'ole' kommer efter 'andreas')

fx ved at lave feltet arkiv i databasen om til et tal istedetfor en varchar
( det fylder heller ikke nær så meget :-))

mvh JakobA
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