ユーザーが必要に応じて情報を編集できるフォームがあります。このフォームの一部として、ユーザーは最大 5 種類の証明を挿入できます。すべての証明は別のテーブルに保存されます。
Table: Proof
proofid - primary key
banid - foreign key -> links to banlist table which stores all other information
proof - the link to which contains the proof
type - the type of proof (image, demo, league, ...)
number - the index number of the proof (0 up to 4)
証明項目を更新または挿入する次のコードもあります。各フィールドをループし、配列で現在選択されている項目が空でないかどうかを確認します。true の場合、$i が、選択された禁止 ID のすべての番号を格納する配列内にあるかどうかを確認します。
banid 237 の場合、配列は次のようになります。Array ( [0] => [1] => 1 )
これは事実上、最初のプルーフ フィールドは空ですが、2 番目のプルーフ フィールドは空ではなく、テーブルにレコードが存在することを示しています。
for($i = 0; $i < 5; $i++)
{
$proof = $checkprooflist[$i];
$prooftype = $checkprooftypelist[$i];
if (!empty($proof))
{
if(!in_array($i, $proofnumberlist))
{
$query2 = "INSERT INTO proof (banid, proof, type, number) VALUE ($id, '$proof', '$prooftype', $i)";
$result2 = mysql_query($query2);
}
else
{
$query2 = "UPDATE proof SET proof = '$proof', type = '$prooftype' WHERE number = $i AND banid = $id";
$result2 = mysql_query($query2);
}
}
}
しかし、私が抱えている問題は、上記の配列では、行if(!in_array($i, $proofnumberlist))
が false を返すため、$i = 0 のときに if ステートメントに入らないことです。
他のすべての値 ($i = 1、...) などでは機能しますが、$i = 0 の場合は機能しません。
読んでいただきありがとうございます。あなたが私に与えることができる助けに感謝します。
ジョン。