我一直在努力解决这个问题,似乎无法找到解决方案。
我有一个可排序列表,通过使用JQuery-ui。无论何时改变位置,它们后面都有颜色需要改变到相同的位置。
因此,每当列表发生更改时,我都会对PHP文件执行AJAX请求,该文件应该处理排序。关于如何对颜色进行排序的所有数据都工作正常。但是,我需要将其更新为数据库中的表。
当我调试时,通过回显来自AJAX请求的返回数据(console.log),我得到了正确的排序方式。但是,只要我添加myqsli_query($ the_query),它就会给我两次相同的查询。然后最终弄乱了整理,一切都从那个部分走下坡路。
AJAX请求的代码片段:
foreach ($status_colors as $values) {
//rearranges the colors with the new positions
for ($i = 0; $i < count($positions); $i++) {
$new_array[$positions[$i]] = $values[$i];
}
//sorting by key starting with 0
ksort($new_array);
//since the colors are saved in the table like this;
//red,green,yellow,purple,etc. I have to implode
$new_status_color = implode(',', $new_array);
//return the right order of colors.
echo $new_status_color;
//Setting up the query with the new status_color the id here is just a example, however its actually going through about 20 records to update
$update_query = 'UPDATE cars SET status_color="'. $new_status_color .'" WHERE id=1';
//If i echo out $update_query, sort the list a couple of times
//I get the result that I want, but as soon as I use the following it breaks
//This breaks it, on the first sort it goes fine. But when I sort again, I get the same query back, as the first one.
mysqli_query($link, $update_query);
}
问题的一个例子: 假设我在列表中有5个项目,可以排序。
让我说我将第5项更改为第1项,这将创建此列表:
现在使用mysql_query这是第一次正常工作,但是当我将其更改回第一个列表(第1 - 5项)时,它仍会返回上一个列表中的SQL。
我希望稍微澄清一下,如果不是,你可以提出并试图让它更容易理解。
也喜欢添加,我尝试过禁用缓存,在PHP中以及在JQuery AJAX中,这也无济于事。