Ok działa prawie...
nie działa jak jest pozycja np 55 a gdy najbliższa ma numer np 5
<?php
include "mysql.class.php";
$dbconfig = array('server' => 'localhost' , 'user' => 'root' , 'pass' => '' ,'dbname' => 'catsort'); $db = new mysql($dbconfig);
if(isset($_GET['act']) && $_GET['act'] == 'sort') {
$nowy_order = $_GET['nowy'];
$stary_order = $_GET['stary'];
$pytek = "UPDATE categories SET position = IF (position = $stary_order, $nowy_order, position + SIGN($stary_order - $nowy_order)) WHERE position >= LEAST($nowy_order, $stary_order) AND position <= GREATEST($nowy_order, $stary_order)";
$db->query($pytek);
}
$query = $db->query_fetch('SELECT * FROM categories order by position ASC');
echo '<Table width="300px">'; echo '<tr><td>text</td><td>AKCJA</td></tr>'; foreach($query as $row){
if($row['position'] == '1') echo $gore = ''; else $gore = 'W gore'; $nowyplus = $row['position']+1;
$nowyminus = $row['position']-1;
echo '<tr><td>'.$row['text'].'</td><td>
<a href="sort.php?act=sort&nowy='.$nowyminus.'&stary='.$row['position'].'">'.$gore.'</a>
<a href="sort.php?act=sort&nowy='.$row['position'].'&stary='.$nowyplus.'">DOL</a></td></tr>';
}
?>