0

我现在有一些代码可以查看是否使用了密钥。唯一的问题是,如果正在修改条目,它现在会找到它自己。什么是寻找重复“除了”当前重复的好方法?我确实有一个名为“id”的唯一 ID。我有一个人的钥匙列表。每把钥匙仅供一个人使用。有时,当办公室里的人从我们拥有的钥匙库中取出钥匙时。然后忘记从我们拥有的密钥库中删除密钥。然后,当下一个人拿钥匙时,他们会拿走最后一个使用过的钥匙。我们最终将游戏钥匙卖给了不同的人。这就是为什么我需要检查 viprek 中的重复项,但如果他们正在更改包含该密钥的条目,则不触发“此密钥已在使用”屏幕。

初始化文件

<?php
$con = mysql_connect(localhost, root, passwordexmaple);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("arkamanc_vipre", $con);
?>

修改.php

http://pastebin.com/5shCfKWu

编辑.php

http://pastebin.com/CVjaS8Lh

4

1 回答 1

0
SELECT c2.id FROM client AS c1, client AS c2
  WHERE c1.viprek = c2.viprek
  AND c1.viprek != :viprek
  AND c1.id < c2.id

上面的查询将返回idtable 的所有条目,这些条目是列client上另一个条目的副本viprek,但 value 保存在 中的条目除外$_POST。您应该只获得较新的副本(id rank-wise)。

这是您应该做的更改,以便在脚本中获得预期的行为:

$query = "SELECT * FROM client AS c1, client AS c2 WHERE c1.viprek = c2.viprek AND c1.viprek!=".mysql_real_escape_string($_POST[viprek])." AND c1.id < c2.id";

如果您想要的是包含viprek列的特定值而id不是特定值的条目,那么这里是查询。

SELECT id FROM client
   WHERE id != :id 
   AND viprek = :viprek

您可以简单地修改您的$query变量以包含此查询,如上所示。

但是,强烈建议您使用 PDO 来执行所有数据库查询。我建议你学习如何去做或雇人来照顾它。这里有一个教程供您过渡到 PDO。

我不确定这是否是你想要的。

于 2013-01-31T16:39:25.520 回答