login  Naam:   Wachtwoord: 
Registreer je!
 Forum

order By [slotje?] (Opgelost)

Offline DownForZ - 12/05/2005 15:38 (laatste wijziging 14/05/2005 00:39)
Avatar van DownForZHTML interesse Hi,

Ik ben bezig met een script voor me dvd films, zodat ik ze altijd terug kan vinden. Dus ik kan ze nu toevoegen etc bekijken alles lukt gewoon, alleen ik wilde ze ook kunnen sorteren op bv, nummer, titel, source, genre.

dus heb ik pijltjes gemaakt met links erna:
  1. http://localhost/dvds/index.php?page=lijst&sort1=tijd&sort2=asc

alleen het werkt niet helemaal zoals het zou moeten.

  1. if(!IsSet($_GET['sort1']))
  2. {
  3. $sort1='tijd';
  4. }
  5. else
  6. {
  7. $sort1=$_GET['sort1'];
  8. }
  9. if(!IsSet($_GET['sort2']))
  10. {
  11. $sort2='DESC';
  12. }
  13. else
  14. {
  15. $sort2=$_GET['sort2'];
  16. }


en dan is de query

  1. $query="select * from dvds ORDER BY '".$sort1."' '".$sort2."'";


doe ik echt iets compleet fout ?

3 antwoorden

Gesponsorde links
Offline Rens - 12/05/2005 15:47 (laatste wijziging 12/05/2005 16:20)
Avatar van Rens Gouden medaille

Crew algemeen
Op dev.mysql.com staat bij ORDER BY dat je order's tussen de komma moet staan.
Dus sort1, sort2, sort3 enz.

  1. <?PHP
  2. // kijken of $_GET['sort1'] geset is
  3. if(!IsSet($_GET['sort1']))
  4. {
  5. // niet geset
  6. // $sSortEen word 'nummer'
  7. $sSortEen = "nummer";
  8. } else
  9. {
  10. // wel geset
  11. // een switch loop zodat je altijd
  12. // een juiste $sSortEen krijgt
  13. switch($_GET['sort1'])
  14. {
  15. // $sSortEen word nummer
  16. case "nummer":
  17. $sSortEen = "nummer";
  18. break;
  19. // $sSortEen word titel
  20. case "titel":
  21. $sSortEen = "titel";
  22. break;
  23. // $sSortEen word source
  24. case "source":
  25. $sSortEen = "source";
  26. break;
  27. // $sSortEen word genre
  28. case "genre";
  29. $sSortEen = "genre";
  30. break;
  31. // standaard word het nummer
  32. // dit als er geen voorgaande waarde
  33. // voor $_GET['sort1'] is
  34. default:
  35. $sSortEen = "nummer";
  36. }
  37. }
  38.  
  39. // hier allemaal hetzelfde
  40. // maar dan voor $_GET['sort2']
  41. // en ook voor $sSortTwee
  42.  
  43. if(!IsSet($_GET['sort2']))
  44. {
  45. $sSortTwee = "ASC";
  46. } else
  47. {
  48. switch($_GET['sort2'])
  49. {
  50. case "ASC":
  51. case "asc":
  52. $sSortTwee = "ASC";
  53. break;
  54. case "DESC":
  55. case "desc":
  56. $sSortTwee = "DESC";
  57. break;
  58. default:
  59. $sSortTwee = "ASC";
  60. }
  61. }
  62.  
  63. // de query setten
  64. // ORDER BY $sSortEen, $sSortTwee
  65. $sQuery = "SELECT * FROM dvds ORDER BY '".$sSortEen."' '".$sSortTwee."'";
  66.  
  67. // de query uitvoeren
  68. if(!$rResult = MySQL_Query($sQuery))
  69. {
  70. // query word niet uitgevoerd
  71. // error + mysql's error echoën
  72. echo "Error!- Kan de dvd's niet ophalen!<BR>";
  73. echo MySQL_Error()."<BR>";
  74. } else
  75. {
  76. // query uitgevoerd
  77. // de rest van je code
  78. }
  79. ?>


Owh, als het ASC of DESC moet zijn...
Kheb de code beetje aangepast.
Probeer het nu nog eens.
Offline DownForZ - 12/05/2005 15:53
Avatar van DownForZ HTML interesse de eerste order=dus titel, genre, source en de 2de order is ASC of DESC, en dat werkt niet, ook niet bij jouw voorbeeld 
Offline DownForZ - 12/05/2005 17:08
Avatar van DownForZ HTML interesse Okay hij kan dicht alles werkt !
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s