Ручное управление сортировкой каталогов из базы 2

  1. <?php
  2.  
  3. /*
  4. ------------------------------------------
  5. --
  6. -- Структура таблицы `lib`
  7. --
  8.  
  9. CREATE TABLE IF NOT EXISTS `lib` (
  10.   `id` int(11) NOT NULL auto_increment,
  11.   `refid` int(11) NOT NULL,
  12.   `type` varchar(4) NOT NULL,
  13.   `text` mediumtext NOT NULL,
  14.   `sort` int(11) NOT NULL default '0',
  15.   PRIMARY KEY  (`id`),
  16.   KEY `type` (`type`),
  17.   KEY `refid` (`refid`)
  18. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  19.  
  20. id - Ид каталога
  21. refid - ид родительского каталога
  22. type - тип
  23. text - имя каталога
  24. sort - сортировка
  25. ------------------------------------------
  26. */
  27.  
  28. if (!isset($_POST['submit'])) {
  29.     $req = mysql_query("SELECT `id`, `text`, `sort` FROM `lib` WHERE `type` = 'cat' AND `refid` = '".$id."' ORDER BY `sort` ASC");
  30.     $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `lib` WHERE `type` = 'cat' AND `refid` = '".$id."'"), 0);
  31.     if ($total > 0) {
  32.         echo '<table cellpadding="0" cellspacing="0" width="900"><tr>';
  33.         echo '<td width="50"><b>№ п/п</b></td><td><b>Имя категории</b></td><td><b>№_</b></td></tr>';
  34.         echo '<tr><td colspan="3"><form action="admin.php?act=cat&amp;id='.$id.'" method="post"></td></tr>';
  35.         $sort_q = mysql_query("SELECT `sort` FROM `lib` WHERE `type` = 'cat' AND `refid` = '".$id."' ORDER BY `sort` ASC");
  36.         while ($sort = mysql_fetch_array($sort_q)) {
  37.             $var[] = $sort['sort'];
  38.         }
  39.         $cc = 0;
  40.         while ($cat = mysql_fetch_array($req)) {
  41.             echo '<tr><td align="center">' . $cat['sort'] . '</td>';
  42.             echo '<td><a href="admin.php?act=cat&amp;id='.$cat['id'].'">' . $cat['text'].'</a>';
  43.             echo '<input type="hidden" name="id'.$cc.'" value="'.$cat['id'].'" /></td>';
  44.             echo '<td align="left"><select name="sort'.$cc.'">';
  45.             for ($i = 0; $i < count($var); $i++) {
  46.                 echo '<option value="'.$var[$i].'">'.$var[$i].'</option>';
  47.             }
  48.             echo '</select></td></tr>';
  49.             $cc++;
  50.         }
  51.         echo '<tr><td colspan="3"><input type="hidden" name="total" value="'.$cc.'" /><input name="submit" type="submit" value="Упорядочить" /></form></td></tr>';
  52.         echo '</table>';
  53.     } else {
  54.         echo 'Категории отсутствуют';
  55.     }
  56. } else {
  57.     $cc = intval($_POST['total']);
  58.  
  59.     //--------------------------------//
  60.     //Проверяем на одинаковые позиции //
  61.     //--------------------------------//
  62.  
  63.     for ($c = 0; $c < $cc; $c++) {
  64.         $t = $c-1;
  65.         if (intval($_POST["sort$c"]) == intval($_POST["sort$t"])) {
  66.             echo 'Ошибка';
  67.             exit;
  68.         };
  69.         unset($t);
  70.     }
  71.     //Задаем сортировку
  72.     for ($i = 0; $i < $cc; $i++) {
  73.         mysql_query("UPDATE `lib` SET `sort` = '" . $_POST["sort$i"] . "' WHERE `id` = '". $_POST["id$i"] . "'");
  74.     }
  75.     header ("location: admin.php?act=cat&id=$id");
  76. }
  77.  
  78. ?>
Еще один велосипед только выглядит он так http://upwap.ru/1528559

Реклама

Мы в соцсетях

tw tg yt gt