Php 两次查询更新不';行不通
嗨,伙计们,我在更新我的桌子时遇到了一个小问题。 我只是向你解释我的情况: index.phpPhp 两次查询更新不';行不通,php,mysql,sql,Php,Mysql,Sql,嗨,伙计们,我在更新我的桌子时遇到了一个小问题。 我只是向你解释我的情况: index.php <?php $query = mysql_query("SELECT * FROM `references` ORDER BY `ID` ASC") or die(mysql_error()); while($referenc = mysql_fetch_assoc($query)){ echo ' <tr>
<?php
$query = mysql_query("SELECT * FROM `references` ORDER BY `ID` ASC") or die(mysql_error());
while($referenc = mysql_fetch_assoc($query)){
echo '
<tr>
<td>'.$referenc['name'].'</td>
<td>'.$referenc['url'].'</td>
<td>'.$referenc['date'].'</td>
<td><a href="updatetest.php?id=' . $referenc['ID'] . '&move=up&position=' . $referenc['position'] . '">up</a></td>
<td><a href="updatetest.php?id=' . $referenc['ID'] . '&move=down&position=' . $referenc['position'] . '">down</a></td>
<td><a href="showrefer.php?id=' . $referenc['ID'] . '">edit</a></td>
</tr>
';
}
?>
你怎么能看到我有两个上下链接。
单击其中一个链接后,我将进入updatetest.php
updaterest.php
f、 e
move=up
位置=2;
id=2;
您需要按照另一个顺序进行查询$moveup
和$getprevposition
具有相同的值,因此您当前正在执行类似的操作
- 将位置更改为
new
,其中id=x
- 将位置更改为
old
,其中position=new
由于您刚刚将位置
更改为新建
,因此第二个位置
将捕获您已编辑的项目(并撤消编辑)。相反,你应该这样做
- 将位置更改为
old
,其中position=new
- 将位置更改为
new
,其中id=x
现在您没有冲突,因为您真正想要更改的行还没有position=new
move = up
position = 2;
id = 2;
<?php
$move = $_GET['move'];
if($move == "up"){
$getcurrentid = $_GET['id'];
$moveup = $_GET['position']-1;
$getprevposition = $_GET['position']-1;
$position = $_GET['position'];
$query = mysql_query("UPDATE `references` SET `position` = '$moveup' WHERE `references`.`ID`='$getcurrentid'") or die(mysql_error());
$query2 = mysql_query("UPDATE `references` SET `position` = '$position' WHERE `references`.`position`='$getprevposition'") or die(mysql_error());
}
else{echo'down';}
?>