Armageddance
Новичок
Совершенно глупый вопрос, но почему-то не могу найти для него подходящего решения.
Суть: в общем, разрабатываю сортировку страниц на ajax.
Код:
Скрипт-обработчик ajax
Методом GET передается строка вида:
скрипт PHP, к которому производится ajax запрос:
Код работает, но непредсказуемым образом - поле pos (позиция строки) в базе Mysql периодически сбивается после смещений строк таблицы, некоторые значения становятся одинаковыми и дальнейшая сортировка становится невозможной.
Периодически в поле pos появляется число 2147483647
Где в коде косяк(и), что исправить?[/i]
Суть: в общем, разрабатываю сортировку страниц на ajax.
Код:
PHP:
Произвожу упорядоченную выборку из Mysql
<?php
$sql="SELECT * FROM pages ORDER BY pos";
$sql=mysql_query($sql);
?>
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>
PHP:
count=4&action=sort&q0=0&q1=1&q2=2&q3=3
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 появляется число 2147483647
Где в коде косяк(и), что исправить?[/i]