Проблема с сортировкой Php, mysql и ajax

Armageddance

Новичок
Совершенно глупый вопрос, но почему-то не могу найти для него подходящего решения.
Суть: в общем, разрабатываю сортировку страниц на ajax.

Код:
PHP:
Произвожу упорядоченную выборку из Mysql
<?php
$sql="SELECT * FROM pages ORDER BY pos";
$sql=mysql_query($sql);
?>
Скрипт-обработчик ajax
PHP:
<script>
$(document).ready(function(){
$("table").tableDnD({
  onDragClass: "dragRow",
  onDrop: function(table, row) {
    var rows = table.tBodies[0].rows;
    var messageString = "count="+rows.length+"&action=sort";
    for (var i=0; i<rows.length; i++) {
	
      messageString += "&q"+i+"="+rows[i].id;
    }
    $("#messageArea").html(messageString);
    $("table").find("tr[@id='"+ row.id +"']").fadeOut(700, function () {
      $(this).fadeIn(300);
    });
	$.ajax({
            type: "GET",
             url: "sort.php",
             timeout: 1000,
             data: messageString,
             success: function(data){$("#server").html(data);},
             error: function(data){$("#server").html("Error");}
         });
	
  },
  onDragStart: function(table, row) {
    $("#messageArea").html();
  }
});
});
</script>

<table>
<?php while($row=mysql_fetch_assoc($sql)){?>
<tr id="<?php echo $row['pos'];?>"><td>Разный контент</td></tr>

 <?php  
?>
</table>
Методом GET передается строка вида:
PHP:
count=4&action=sort&q0=0&q1=1&q2=2&q3=3
скрипт PHP, к которому производится ajax запрос:
PHP:
if($_GET["action"]=="sort")
{
$query=array();
$query=$_GET;
unset($query['action'],$query['count']);
foreach($query as $key=>$value) 
{ 
$new=intval(substr($key, 1));
$sql2="UPDATE pages SET pos=".$value." WHERE pos=".$new;
$sql2=mysql_query($sql2);
}
}
Код работает, но непредсказуемым образом - поле pos (позиция строки) в базе Mysql периодически сбивается после смещений строк таблицы, некоторые значения становятся одинаковыми и дальнейшая сортировка становится невозможной.
Периодически в поле pos появляется число 2147483647
Где в коде косяк(и), что исправить?[/i]
 
Сверху