login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Handige scripts > Volgorde wijzigen

Volgorde wijzigen

Auteur: Ibrahim - 09 maart 2007 - 20:59 - Gekeurd door: Rens - Hits: 3082 - Aantal punten: 4.00 (1 stem)




Met deze functie kun je dus de volgorde wijzigen van bijvoorbeeld categorieën of zelfs menu items (als die in een tabel worden opgeslagen).

Je maakt gewoon een veld volgorde aan en je gebruikt het zo:

ChangeOrder( 'tabel', 'idveld', 'id', 'omhoog/omlaag' ); // zet echo/print ervoor als je een melding wilt


Het kan best zijn dat dit kleiner/simpeler geschreven kan worden. Meld dit dan ook, want ik heb deze script vorig jaar ofzo gemaakt, en het werkt tot nu toe prima.
Bugs kun je ook melden.

Have fun

Code:
  1. <?php
  2.  
  3. function ChangeOrder( $tabel, $IDveld, $ID, $richting )
  4. {
  5. $richting = strtolower( $richting );
  6.  
  7. $richting = ( $richting == 'omhoog' || $richting == 'omlaag' ) ? $richting : 'omhoog';
  8.  
  9. $select_volgorde = "SELECT volgorde FROM {$tabel} WHERE {$IDveld} = {$ID}";
  10.  
  11. $perform_select = mysql_query( $select_volgorde)
  12. or die('QUERY ERROR: (SELECT_VOLGORDE) <pre>' . $select_volgorde . '</pre>');
  13.  
  14. $fetch_volgorde = mysql_fetch_assoc($perform_select);
  15.  
  16. $selectMax = mysql_query("SELECT MAX(volgorde) AS maximaal
  17. FROM {$tabel}
  18. ");
  19.  
  20. $result = mysql_result( $selectMax, 0 );
  21.  
  22. if($richting == 'omhoog')
  23. {
  24. if( $fetch_volgorde['volgorde'] == $result )
  25. {
  26. $return = 'Je kunt niet hoger dan huidige volgorde';
  27. }
  28. else
  29. {
  30. $update_volgorde = "UPDATE {$tabel} SET volgorde = (volgorde + 1)
  31. WHERE {$IDveld} = {$ID}
  32. ";
  33.  
  34. $select_vorige = mysql_query("SELECT volgorde FROM {$tabel}
  35. WHERE volgorde = ({$fetch_volgorde['volgorde']} + 1)
  36. ");
  37.  
  38. $fetch = mysql_fetch_assoc($select_vorige);
  39.  
  40. if($fetch['volgorde'] > 1)
  41. {
  42. $update_vorige = mysql_query("UPDATE {$tabel} SET volgorde = {$fetch_volgorde['volgorde']}
  43. WHERE volgorde = ({$fetch_volgorde['volgorde']} + 1)
  44. ");
  45. }
  46.  
  47. $return = 'Volgorde is succesvol gewijzigd.';
  48.  
  49. $perform_update = mysql_query($update_volgorde)
  50. or die('QUERY ERROR: (UPDATE VOLGORDE) <pre>' . $update_volgorde . '</pre>');
  51. }
  52. }
  53.  
  54. if($richting == 'omlaag')
  55. {
  56. if($fetch_volgorde['volgorde'] == 1)
  57. {
  58. $return = 'Je kunt niet lager dan huidige volgorde';
  59. }
  60. else
  61. {
  62. $update_volgorde = "UPDATE {$tabel} SET volgorde = volgorde - 1
  63. WHERE {$IDveld} = {$ID}
  64. ";
  65.  
  66. $update_vorige = mysql_query("UPDATE {$tabel} SET volgorde = {$fetch_volgorde['volgorde']}
  67. WHERE volgorde = ({$fetch_volgorde['volgorde']} - 1)
  68. ");
  69.  
  70. $return = 'Volgorde is succesvol gewijzigd.';
  71.  
  72. $perform_update = mysql_query($update_volgorde)
  73. or die('QUERY ERROR: (UPDATE VOLGORDE) <pre>' . $update_volgorde . '</pre>');
  74. }
  75. }
  76.  
  77. return $return;
  78. }
  79.  
  80. // voorbeeld:
  81. echo ChangeOrder( 'forums_categories', 'catID', 1, 'omlaag' ); // zal "Je kunt niet lager dan huidige volgorde" omdat deze waarde 1 heeft
  82.  
  83. echo ChangeOrder( 'forums_categories', 'catID', 2, 'omlaag' ); // zal "Je kunt niet hoger dan huidige volgorde" omdat deze de hoogste waarde heeft
  84.  
  85. echo ChangeOrder( 'forums_categories', 'catID', 3, 'omlaag' ); // zal "Volgorde is succesvol gewijzigd." omdat deze waarde niet 1 is of de hoogste waarde heeft
  86.  
  87. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (4)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.027s