Avatar billede reflex Nybegynder
11. maj 2008 - 21:04 Der er 13 kommentarer og
1 løsning

Sortering i db via dropdown boks

Hey,

Jeg skal bruge lidt hjælp. Jeg vil gerne have at indholdet i en dropdown boks som jeg laver kan bruges til at sortere i min db. Altså hvis man f.eks. vælger by, skal den sortere efter by i min db. Jeg kan bare ikke lige få det til at virke.
Avatar billede tmi Nybegynder
11. maj 2008 - 21:13 #1
<select name='orderby'>
<option value='id'>ID</option>
<option value='name'>Navn</option>
</select>

<?
mysql_query("SELECT * FROM kunder ORDER BY ".$_REQUEST["orderby"]);
?>
Avatar billede reflex Nybegynder
11. maj 2008 - 21:58 #2
Jeg kunne ikke få det til at virke, der kommer ikke noget frem. Jeg bruger dette:

        echo "<form method='post' action='vudersv2.php'>";
        echo "<select name='valg'>";
        echo "<option value='navn'>Navn</option>";
        echo "<option value='postnr'>Post nr.</option>";
        echo "<option value='by'>By</option>";
        echo "</select>";
        echo "&nbsp;<input type='submit' name'valg2' value='Sortér'>";
        echo "</form>";

Og så din linie. Hvad er der mon galt?
Avatar billede tmi Nybegynder
11. maj 2008 - 22:08 #3
:-|
Det er nok din SQL der er gal
Avatar billede reflex Nybegynder
11. maj 2008 - 22:27 #4
Det skal lige siges at, jeg sagtens kan vise alt i db'en men den vil ikke når jeg prøver det på din måde.
Avatar billede reflex Nybegynder
11. maj 2008 - 22:39 #5
Kan man ikke bare hive resultatet ud i en $valg eller ligende?
Avatar billede dkfire Nybegynder
11. maj 2008 - 23:25 #6
Prøv at vise hele din kode, så vi kan se hvad du laver. Evt kan du jo prøve med en "or die(mysql_error())" efter din mysql_query.
Avatar billede moddi100 Seniormester
12. maj 2008 - 11:51 #7
Din kode skulle vel aldrig se sådan ud:     

        echo "<form method='post' action='vudersv2.php'>";
        echo "<select name='valg'>";
        echo "<option value='navn'>Navn</option>";
        echo "<option value='postnr'>Post nr.</option>";
        echo "<option value='by'>By</option>";
        echo "</select>";
        echo "&nbsp;<input type='submit' name'valg2' value='Sortér'>";
        echo "</form>";

<?
mysql_query("SELECT * FROM kunder ORDER BY ".$_REQUEST["orderby"]);
?>

?? Du skal ændre sql'en så den er magen til din query der henter information. Din query skal altså se nogenlunde sådan ud:
$query = mysql_query("SELECT * FROM [DIN TABEL] ORDER BY " . $_POST["valg"] . "");

$_POST["valg"] skal selvfølgelig være det samme som koden <select name=' valg '>
[DIN TABEL] skifter du ud med navnet på den tabel hvor dataene ligger i.
Avatar billede reflex Nybegynder
12. maj 2008 - 18:55 #8
Her er et lille udpluk af scriptet:

<?php
include ("connect.php");

        echo "<form method='post' action='test.php'>";
        echo "<select size='1' tabindex='1' name='valg'>";
        echo "<option>navn</option>";
        echo "<option>postnr</option>";
        echo "<option>by</option>";
        echo "</select>";
        echo "<input type='submit' name'soeg' value='Sorter'>";
        echo "</form>";


        $result = mysql_query("select * from butikker_sverige order by navn ASC");
       
    while ($row = mysql_fetch_array($result)) {   
        $navn=$row[0];          // Butikkens navn
        $adresse=$row[1];          // Adressen
        $postnr=$row[2];          // Postnummer
        $by=$row[3];             // Byen
        $man=$row[4];             // Åbningstider Mandag
        $tir=$row[5];             // Åbningstider Tirsdag
        $ons=$row[6];             // Åbningstider Onsdag
        $tor=$row[7];             // Åbningstider Torsdag
        $fre=$row[8];             // Åbningstider Fredag
        $lor=$row[9];             // Åbningstider Lørdag
        $son=$row[10];             // Åbningstider Søndag
        $tlf=$row[11];              // Telefon nummer
        $mail=$row[12];            // Email adresse
        $web=$row[13];            // Website adresse
        $tumb=$row[14];          // Tumbnail
        $billede=$row[15];        // Billede af butikken
        $vud_akva=$row[16];      // Vudering af akvariernes stand
        $vud_fisk=$row[17];        // Vudering af fiske udvalget
        $info=$row[18];            // Information om butikken
        $plus=$row[19];            // Plusser om butikken
        $minus=$row[20];        // Minusser om butikken
        $id=$row[21];            // ID
       
       
echo "<h2><img src='/butik/spacer.gif' valign='top' width='14' hight='14' border='0'>&nbsp;$navn</h2>";
echo "<img src='/butik/home.gif' valign='top' width='14' hight='14' border='0'>&nbsp;$adresse<br>";
?>
Osv.


En demo:
http://www.cichliden.dk/test.php
Siden skal vises første gang sorteret efter navn. Der efter skal man via. den øverste boks kune sortere efter by, postnr og navn.
Avatar billede reflex Nybegynder
12. maj 2008 - 18:57 #9
Har prøvet at sætte de nye linier ind, men så vises siden ikke først, og man kan alligevel ikke sortere.
Avatar billede moddi100 Seniormester
12. maj 2008 - 19:25 #10
Dette burde virke:

if(!isset($_POST['valg'])){
$_POST['valg'] = 'navn';
}

$result = mysql_query("select * from butikker_sverige order by " . $_POST['valg'] . " ASC");
Avatar billede dkfire Nybegynder
12. maj 2008 - 19:27 #11
Du kan få et problem hvis du har et felt som hedder by. By er et reserveret ord i sql.
Avatar billede reflex Nybegynder
12. maj 2008 - 19:47 #12
moddi100> Jeg havde prøvede med din sidste løsning, men jeg kunne ikke skrive det rigtig. :(
Du skal have mange tak for hjælpen, det virker fint nu. :)

dkfire> Det har du ret i, der var problemer. Jeg så det dog inden dit indlæg, men tak for hjælpen.
Avatar billede reflex Nybegynder
12. maj 2008 - 20:00 #13
Ps. findes der en kommando som kan bruges i <option> linien så jeg kan kalde det by men har værdien bynavn måske?
Avatar billede reflex Nybegynder
12. maj 2008 - 20:13 #14
<option value="byen">by</option>

Fandt den.
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