0

こんにちは、mySQL のテーブルに次の更新があります。

$dbBuilder = '';

foreach($_POST as $key => $value)
{
    if ($value != 'APPROVE') {
        $dbBuilder = $value . ", " . $dbBuilder;
    }
}

$dbBuilder = '(' . rtrim($dbBuilder, ", ") . ')';

UPDATE userCase SET Accepted = 1 WHERE CaseNum in $dbBuilder

正常に動作します...しかし、CaseNumごとに新しいQNumを許可するように変更する必要がありました。

$result = mysql_query("SELECT QNum FROM userCase ORDER BY QNum DESC limit 1");

while($row = mysql_fetch_assoc($result)) {
    $QNum = $row["QNum"] + 1;
    break;
}

UPDATE userCase SET Accepted = 1, QNum = " . $QNum . " WHERE CaseNum in $dbBuilder

上記のようにすると、「in」のすべての CaseNumに対してQNumが同じ数に設定されます。一意である必要があります (新しい行ごとに QNum に 1 を追加するなど)。

テーブル内の最後の QNum よりも 1 だけ多くする必要があります。したがって、誰かがいくつかのことを「承認」すると(たとえば 3つとしましょう) 、上記のクエリに移動し、そうする必要があります(DB の最後の数字が 4 であるとしましょう) 。私が今持っているコードは5,5,5を行うだけです。

上記のコードで同じCaseNumを使用してこれを達成するにはどうすればよいですか?

ありがとう!

4

1 に答える 1