使用Mysql更新已连接的可排序列表

时间:2013-09-01 06:47:35

标签: php jquery mysql

我正在处理一些教程。我一直在四处寻找,似乎无法击中头部。到目前为止,这是我的代码。

索引

<?php       
$result = mysql_query("SELECT MAX(listid) AS listid FROM testtable");  
while($row = mysql_fetch_array($result))  
{    
for ($i=1; $i<=(int)$row['listid']; $i++) {?>
<div class="heading" >List <?php echo $i; ?></div>
<ul class="connectedSortable sortable">
  <?php
$item = "SELECT * FROM testtable WHERE listid='".$i."' ORDER BY posid ASC";
$list = mysql_query($item); $x = 1; 
while($row2 = mysql_fetch_array($list, MYSQL_ASSOC)){
    ?>
  <li class="ui-state-default" id="recordsArray_<?php echo $row2['linkid']; ?>">
  <?php echo $row2['linkname']; ?></li>
  <?php $x++;
}
?>
</ul>
<?php 
}} 
?>

的Javascript

$(document).ready(function(){
  $(function () {
      $(".sortable").sortable({
          connectWith: ".connectedSortable",
          distance: 5,
          zIndex: 0,
          opacity: 0.6,
          cursor: 'move',
          update: function() {
            var order = $(this).sortable("serialize")
+ '&action=updateRecordsListings'; 
            $.post("updateDB.php", order)}
      }).disableSelection();
  });
});

和updateDB.php代码

    <?php 
require("connect2.php");

$action = mysql_real_escape_string($_POST['action']); 
$updateRecordsArray = $_POST['recordsArray'];

if ($action == "updateRecordsListings"){

    $posidCounter = 1;
    foreach ($updateRecordsArray as $recordIDValue) {

        $query = "UPDATE testtable SET posid = ".$posidCounter."
        WHERE linkid=".$recordIDValue;
        mysql_query($query) or die('Error, insert query failed');
        $posidCounter = $posidCounter + 1;  
    }
}
?>

现在一切似乎都运转良好。但我想要实现的是当我将列表项移动到连接列表时,更新数据库以反映新列表中的项位置。目前它只是更新其在原始列表中的位置。

我对这一切都很陌生,所以任何帮助都会很棒!提前谢谢。

我的表看起来像这样:

+----------+----------+---------+--------+
| linkname |  linkid  |  posid  | listid |
+----------+----------+---------+--------+
|     1    |     1    |    2    |    1   |
|     1    |     2    |    1    |    1   |
|     1    |     3    |    1    |    2   | 
|     1    |     4    |    2    |    2   |
+----------+----------+---------+--------+

0 个答案:

没有答案