Avatar billede casc Nybegynder
18. marts 2005 - 10:04 Der er 4 kommentarer

Sortering af adresseliste..

Hej alle
jeg nørkler med en adresseliste, som jeg gerne vil kunne sortere i, både efter fornavn, efternavn, adresse, osv. Dvs at jeg når jeg trykker på fornavn, så skal udtrækket fra databasen order by fornavn asc, og hvis det er efternavn, skal udtrækket være order by efternavn. min eksperimenterende kode ser sådan ud:

<td class="overskrift"><a href="?mode=1">Fornavn</a></td><td class="overskrift">&nbsp;|&nbsp;  </td>
    <td class="overskrift"><a href="?mode=2">Efternavn</a></td>
    <td class="overskrift">&nbsp;|&nbsp;</td>
    <td class="overskrift"><a href="?mode=3">adresse</a></td><td class="overskrift">&nbsp;|&nbsp;</td>
    <td class="overskrift">postnummer</td><td class="overskrift">&nbsp;|&nbsp;</td>
    <td class="overskrift"><a href="?mode=5">by</a></td><td class="overskrift">&nbsp;|&nbsp;</td>
    <td class="overskrift">hjemmetelefon</td> <td class="overskrift">&nbsp;|&nbsp;</td>
    <td class="overskrift">arbejdstelefon</td> <td class="overskrift">&nbsp;|&nbsp;</td>
    <td class="overskrift">mobiltelefon</td> <td class="overskrift">&nbsp;|&nbsp;</td>
    <td class="overskrift">email</td>
   
  </tr>
  <?php
        //forbind til databasen.
    $link = mysql_connect ('127.0.0.1', 'root', 'casc')
            or die ('kunne ikke forbinde til databasen n:  ' .mysql_error());
    mysql_select_db('hymer') or die ('kunne ikke finde databasen');
   
        //lave sqlforespørgsler
    if (! isset ($mode) ) {
    $query = "select * from navnedata, adressdata  where navnedata.id = adressdata.id_adress order by fornavn asc";
    $result = mysql_query($query) or die ('forespørgsel fejlede:  ' . mysql_error());
    } else {
    if ($mode == 1)  {
    $query = "select * from navnedata, adressdata  where navnedata.id = adressdata.id_adress order by fornavn asc";
    $result = mysql_query($query) or die ('forespørgsel fejlede:  ' . mysql_error());
    } else if ($mode == 2)  {
    $query = "select * from navnedata, adressdata  where navnedata.id = adressdata.id_adress order by efternavn asc";
    $result = mysql_query($query) or die ('forespørgsel fejlede:  ' . mysql_error());
   
        }
    }

Jeg har fundet nogle svar i spørgsmål 441900, som jeg har prøvet at efterligne, men jeg kan som sagt ikke få det til at virke.
Jeg har prøvet at printe variablen -mode, men den findes åbenbart ikke..
Hjælp udbedes
casc
Avatar billede barklund Nybegynder
18. marts 2005 - 10:07 #1
Du skal læse $mode fra $_GET:

if ($_GET['mode'] == 1)  {
  ...

Så burde det virke.

--
Morten Barklund
Avatar billede bromer Nybegynder
18. marts 2005 - 10:09 #2
$mode findes vel ikke fordi den ligger i $_GET['mode'].

Derudover ville jeg anbefale at du mappede dine mulige modes mod kolonnenavne fra for eksempel et array, saa du slippper for at lave alle de if-saetninger du er begyndt paa.

$modes = array(1 => "fornavn",2 => "efternavn");
$sort = $modes[$mode];

$query = "select * from navnedata, adressdata  where navnedata.id = adressdata.id_adress order " . $sort);
Avatar billede casc Nybegynder
18. marts 2005 - 11:18 #3
Det kan jeg ikke få til at virke. Jeg får en fejl,om manglende variabel, -mode...
Avatar billede bromer Nybegynder
18. marts 2005 - 11:42 #4
Tja.. det er nok fordi du ikke skal have denne:

$sort = $modes[$mode];

men derimod

$sort $modes[$_GET['mode']];
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