1

基本上我想做的是,当我删除一个 ID 为 6 的客户端并且我有 50 个客户端时,我想将 ID 为 50 的客户端更新为 6。

这是我在 PHP 中的代码,但它不会同时执行 2 mysql_query-s 至少我认为这是问题所在。否则 SQL 语法可以正常工作。

public function delete () {
    $last=$this->numrow; //contains last ID works fine

    if (isset ($_GET['x'])) {
        mysql_query('DELETE FROM proba WHERE ID ='.$_GET['x']);
        mysql_query('UPDATE proba SET ID='.(int)$_GET['x'].'WHERE ID='.(int)$last);
    }
}

$_GET['x']包含单击它的 ID 。但是只有第一个mysql_query被执行我怎么做才能让第二个也被执行?

另一个问题是是否有可能<a href="munka/index.php?x=5" > [-] </a>用 a 得到 x=5 $_POST

4

5 回答 5

0

使用 mysql 的替换查询可能会为自己省去很多麻烦:有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.6/en/replace.html

于 2013-02-21T11:44:08.100 回答
0

很可能您在第一次查询时遇到了 php 错误。检查php错误日志。

对于第二个问题$_GET,例如用于从 URL 中获取参数

munka/index.php?x=5

$_POST用于获取发布在 http post 上的参数(通常在表单提交上)。

于 2013-02-21T11:45:44.853 回答
0

只需在 where 子句之前用空格更改更新查询

 mysql_query('UPDATE proba SET ID='.(int)$_GET['x'].' WHERE ID='.(int)$last);
于 2013-02-21T11:52:26.500 回答
0

最好通过使用 InnoDB Mysql DB Engine 来使用事务支持,因此 delete 和 update 一起执行 wuth COMMIT 而不会错过,如果出现任何问题,您的删除更改将得到 ROLLBACK

于 2013-02-21T12:43:24.110 回答
-2
 if (isset($_GET['x'])) {
        mysql_query('DELETE FROM proba WHERE ID =' . $_GET['x']);
        mysql_query('ALTER TABLE `proba`  DROP `ID`;');
        mysql_query('ALTER TABLE  `proba` ADD  `ID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST');
    }

尝试在 Phpmyadmin 中删除第 5 条记录并删除 id 列并重新创建 id 列。这是工作。

于 2013-02-21T11:53:54.467 回答