У меня есть форма, которая позволяет моему пользователю редактировать информацию по мере необходимости. В рамках этой формы пользователь может вставить до 5 типов доказательств. Все доказательства хранятся в отдельной таблице:in_array возвращает true, когда элемент не существует
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 внутри массива, который хранит все числа для выбранного идентификатора запрета.
массив выглядит следующим образом для забаненного 237: Array ([0] => [1] => 1)
Это фактически говорит о том, что первое доказательство поле пусто, но второй нет и что существует запись в таблице.
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))
возвращается ложное и, таким образом, не входя в, если заявление, когда $ = 0.
Это работает для всех остальных значений (где $ i = 1, ...) и т. д., но не тогда, когда $ i = 0.
Спасибо за чтение, и я ценю любую помощь, которую вы можете мне дать.
Jon.
Спасибо, Кори. Я рассмотрю это, поскольку я действительно не знал, что такая вещь существует! –