0

キーが使用されているかどうかを確認するコードがあります。唯一の問題は、エントリが変更されている場合、現在それが自分自身を見つけることです。現在のものを「除いて」重複を探す良い方法は何でしょうか?私は「id」と呼ばれる一意のIDを持っています。私は人々のための鍵のリストを持っています。各キーは1人用です。時々、オフィスの人々が私たちが持っている鍵の銀行から鍵を受け取るとき。次に、私たちが持っているキーのバンクからキーを削除することを忘れてください。次に、次の人が鍵を受け取るとき、最後に使用された鍵を受け取ります。ゲームキーをさまざまな人に販売することになります。そのため、viprekで重複をチェックする必要がありますが、そのキーを含むエントリを変更している場合は、[このキーは既に使用されています]画面をトリガーしません。

init.php

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

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

modify.php

http://pastebin.com/5shCfKWu

Edit.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 のすべてのエントリのを返します。新しい重複のみを取得する必要があります(IDランクごと)。clientviprek$_POST

これは、スクリプトで期待される動作を得るために行う必要がある変更です。

$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 を使用してすべての DB クエリを実行することを強くお勧めします。その方法を学ぶか、世話をする人を雇うことをお勧めします。これは、PDO への移行を行うためのチュートリアルです。

これがあなたの望むものかどうかはわかりません。

于 2013-01-31T16:39:25.520 に答える