Avatar billede Slettet bruger
19. januar 2004 - 20:36 Der er 7 kommentarer og
1 løsning

Sorterings tryk part 2 - Upgradering

Hej jeg har et script, der sorter alt efter hvad jeg vil se:
Ligesom inde i phpmyadmin, men jeg ville gerne havde at jeg kunne klikke igen på Navn, og så skulle den så kører ASC- istedet for DESC-limit...

Men kan jeg ikke lige finde ud af... håber I kan hjælpe mig.


<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">
      <table border="0" width="100%" cellspacing="0" cellpadding="0">
        <tr>
          <td width="20%"><a href="?sort=usr_name_asc">Brugernavn</a></td>
          <td width="20%"><a href="?sort=irl_name_desc">Navn</a></td>
          <td width="20%"><a href="?sort=email_desc">E-mail</a></td>
          <td width="20%"><a href="?sort=age_desc">Alder</a></td>
        </tr>
      </table>
    </td>
  </tr>
</table><?php
include_once("db.php");

$sort = $_GET['sort'];

switch ($sort) {
  case usr_name_asc:
    $query = "SELECT * FROM telebogen_users ORDER BY usr_name ASC";
    break;
  case irl_name_desc:
    $query = "SELECT * FROM telebogen_users ORDER BY irl_name DESC";
    break;
  case email_desc:
    $query = "SELECT * FROM telebogen_users ORDER BY email DESC";
    break;
  case age_desc:
    $query = "SELECT * FROM telebogen_users ORDER BY age DESC";
    break;
  default:
    $query = "SELECT * FROM telebogen_users ORDER BY usr_name DESC";
    break;
}

$query = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_array($query)) {
    echo $row[usr_name]. '  -  ';
    echo $row[irl_name].'  -  ';
    echo $row[email].'  -  ';
    echo $row[age].'<br />';
    }

?>
Avatar billede Slettet bruger
19. januar 2004 - 21:03 #1
Avatar billede detox Nybegynder
19. januar 2004 - 22:19 #2
Måske med sessions:

<?
session_start();
$out = "";
if (!isset($_SESSION['age'])) {
    $_SESSION['usr_name'] = "ASC";
    $_SESSION['irl_name'] = "DESC";
    $_SESSION['email'] = "DESC";
    $_SESSION['age'] = "DESC";
}
if (isset($_GET['sort'])) {
    include_once("db.php");
    $_SESSION[$_GET['sort']] = $_SESSION[$_GET['sort']] == "ASC" ? "DESC" : "ASC";
   
    $query = mysql_query("SELECT * FROM telebogen_users ORDER BY ".$_GET['sort']." ".$_SESSION[$_GET['sort']]) or die(mysql_error());
   
    while ($row = mysql_fetch_array($query)) {
        $out .= $row[usr_name]. '  -  ';
        $out .= $row[irl_name].'  -  ';
        $out .= $row[email].'  -  ';
        $out .= $row[age].'<br />';
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
</head>
<body>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">
      <table border="0" width="100%" cellspacing="0" cellpadding="0">
        <tr>
          <td width="20%"><a href="?sort=usr_name">Brugernavn</a></td>
          <td width="20%"><a href="?sort=irl_name">Navn</a></td>
          <td width="20%"><a href="?sort=email">E-mail</a></td>
          <td width="20%"><a href="?sort=age">Alder</a></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<? echo $out; ?>
</body>
</html>
Avatar billede thomasrba Nybegynder
20. januar 2004 - 00:55 #3
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">
      <table border="0" width="100%" cellspacing="0" cellpadding="0">
        <tr>
<td width="20%"><a href="?sort=usr_name ASC">Brugernavn - stigende</a></td>
<td width="20%"><a href="?sort=usr_name DESC">Brugernavn - faldende</a></td>
<td width="20%"><a href="?sort=irl_name ASC">Navn - stigende</a></td>
<td width="20%"><a href="?sort=irl_name DESC">Navn - faldende</a></td>
<td width="20%"><a href="?sort=email ASC">E-mail - stigende</a></td>
<td width="20%"><a href="?sort=email DESC">E-mail - faldende</a></td>
<td width="20%"><a href="?sort=age ASC">Alder - stigende</a></td>
<td width="20%"><a href="?sort=age DESC">Alder - faldende</a></td>
        </tr>
      </table>
    </td>
  </tr>
</table><?php
include_once("db.php");

if (!$sort){$sort= "irl_name ASC";} //default hvis ingen valgt.

$query = "SELECT * FROM telebogen_users ORDER BY $sort";

$query = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_array($query)) {
    echo $row[usr_name]. '  -  ';
    echo $row[irl_name].'  -  ';
    echo $row[email].'  -  ';
    echo $row[age].'<br />';
    }

?>

NB: kode ikke testet, men det virker sgu nok alligevel :O)

Mvh ThomasB
Avatar billede Slettet bruger
21. januar 2004 - 11:30 #4
Hmm.... den viser mig denne fejl ved "detox"'s kommentar...
----Fejl-----
You have an error in your SQL syntax near 'DESC' at line 1
---Fejl slut---
Avatar billede Slettet bruger
21. januar 2004 - 11:40 #5
Detox => jo nu fik jeg det til at virke...
Avatar billede Slettet bruger
07. september 2005 - 13:59 #6
detox > lægger du et svar?
Avatar billede detox Nybegynder
15. september 2005 - 09:55 #7
værsgo
Avatar billede Slettet bruger
15. september 2005 - 09:56 #8
takker :D
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