Avatar billede sacer Nybegynder
31. august 2004 - 18:35 Der er 10 kommentarer og
1 løsning

List af mysql tabel?

Jeg skal have listet en tabel: tilmeldte

function liste($db) {
echo '<h3>Liste over tilmeldte</h3>

<table class="tekst">
    <tr>
        <th class="boks"><a href="default.php?site=liste&order=name&direction=1">Navn</a></th>
        <th class="boks"><a href="default.php?site=liste&order=class&direction=1">Klasse</a></th>
        <th class="boks"><a href="default.php?site=liste&order=nick&direction=1">Nick</a></th>
        <th class="boks">Status</th>
    </tr>';
$newsdata = mysql_query("SELECT * FROM `tilmeldte` WHERE 1 ORDER BY 'ID' ASC",$db);
$antal = 0;

while ($newsdatarow = mysql_fetch_row($newsdata)) {
if($newsdatarow[9] == "1") {
$antal = $antal + 1;
if($newsdatarow[4] == "3") { $status = "Fragger"; }
elseif($newsdatarow[4] == "4") { $status = "Leacher"; }
elseif($newsdatarow[4] == "5") { $status = "Coke-Addictive"; }
elseif($newsdatarow[4] == "6") { $status = "Pepsi-Pusher"; }
elseif($newsdatarow[4] == "7") { $status = "Über linux geek"; }
elseif($newsdatarow[4] == "8") { $status = "Outsider"; }
elseif($newsdatarow[4] == "9") { $status = "APG/BSA Ansat"; }
elseif($newsdatarow[4] == "10") { $status = "MMORPG Freak"; }
elseif($newsdatarow[4] == "11") { $status = "N/A"; }
elseif($newsdatarow[4] == "12") { $status = "Scener"; }
elseif($newsdatarow[4] == "13") { $status = "i am LOST"; }
elseif($newsdatarow[4] == "14") { $status = "Easykill"; }
elseif($newsdatarow[4] == "15") { $status = "Just here to meet chicks"; }
echo '<span class="tekst">
<tr>
    <td class="boks2">'.$newsdatarow[1].'</td>
    <td class="boks2">'.$newsdatarow[2].'</td>
    <td class="boks2">'.$newsdatarow[3].'</td>
    <td class="boks2">'.$status.'</td>
</tr></span>'; } }
echo "</table>";
echo "<h4>Der er i alt $antal tilmeldte til Comparty 2k5 Winter</h4>";
}


Men så ville jeg gerne have at man at man kunne trykke på Navn, Klasse eller Nick og så skulle den liste efter abc eller 1,2,3..
Avatar billede dennismp Nybegynder
31. august 2004 - 18:40 #1
Sådan her:

if( in_array($_GET['order'], array('name','class','nick')) )  {
  $orderby = $_GET['order'];
}
else {
  $orderby = 'id';
}

$newsdata = mysql_query("SELECT * FROM `tilmeldte` WHERE 1 ORDER BY '$orderby' ASC",$db);
Avatar billede dennismp Nybegynder
31. august 2004 - 18:42 #2
Hvis du også vil have direction, så kan du tilføje

if( in_array($_GET['order'], array('name','class','nick')) )  {
  $orderby = $_GET['order'];

  if( $_GET['direction'] == 1 )
    $orderdirection = 'ASC';
  else
    $orderdirection = 'DESC';
}
else {
  $orderby = 'id';
  $orderdirection = 'DESC';
}
Avatar billede dennismp Nybegynder
31. august 2004 - 18:42 #3
og så skal sql'en være:

$newsdata = mysql_query("SELECT * FROM `tilmeldte` WHERE 1 ORDER BY '$orderby' $orderdirection",$db);
Avatar billede sacer Nybegynder
31. august 2004 - 19:19 #4
thx det var lige sådan...

Du svarer lige så får du et par ponts
Avatar billede sacer Nybegynder
31. august 2004 - 19:22 #5
lige en ting, er det ik muligt at gøre så hvis går normalt ind på linket så lister den efter ID?
Avatar billede dennismp Nybegynder
31. august 2004 - 19:29 #6
Gør den da ikke det? Det er ellers det else-delen i den første if skulle gøre.
Avatar billede dennismp Nybegynder
31. august 2004 - 19:29 #7
Du får lige et svar, men skriv hvis det ikke virker.
Avatar billede sacer Nybegynder
31. august 2004 - 19:31 #8
ja ved der er en else, men den tager fra den sidste man trykkede
Avatar billede sacer Nybegynder
31. august 2004 - 19:36 #9
har fundet hvad det er:

else {
  $orderby = 'id';
  $orderdirection = 'DESC';

den skal liste efter ASC
Avatar billede dennismp Nybegynder
31. august 2004 - 19:44 #10
Ah ja, self :).

Lige en sidebemærkning: Grunden til at det in_array() check er nødvendig, er at sørge for, at folk ikke kan putte kode direkte ind i vores sql, i tilfældet af man kan misbruge mysql til at opnå et eller andet.. in_array() sørger for, at vi ved at $_GET['order'] er een af de værdier vi forventer.
Avatar billede sacer Nybegynder
31. august 2004 - 20:21 #11
okay det vidste jeg ik, men forståelig nok.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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