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..
Annonceindlæg fra Arrow
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);
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'; }
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);
31. august 2004 - 19:19
#4
thx det var lige sådan... Du svarer lige så får du et par ponts
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?
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.
31. august 2004 - 19:29
#7
Du får lige et svar, men skriv hvis det ikke virker.
31. august 2004 - 19:31
#8
ja ved der er en else, men den tager fra den sidste man trykkede
31. august 2004 - 19:36
#9
har fundet hvad det er: else { $orderby = 'id'; $orderdirection = 'DESC'; den skal liste efter ASC
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.
31. august 2004 - 20:21
#11
okay det vidste jeg ik, men forståelig nok.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.