Я искал и стучал головой с двух дней, чтобы достичь того, чего хочу достичь, но поскольку Google и другие источники не смогли решить мои проблемы, отправьте его здесь. У меня есть форма, где я отправляю массив и отправляю его через PHP, чтобы вставить его в базу данных mysql.Проверка и вставка многомерных массивов
Форма значения
<tr class="alternate-1">
<td>1</td>
<td><input name="description[]" id="description-1" type="text" value="test1"></td>
<td><input name="amount[]" id="amount-1" type="text" value="500.00"></td>
<td><input name="paidby[]" id="paidby-1" type="text" value="">Company</td>
<td><input name="paidto[]" id="paidto-1" type="text" value="client"></td>
</tr>
<tr class="alternate-2">
<td>2</td>
<td><input name="description[]" id="description-2" type="text"></td>
<td><input name="amount[]" id="amount-2" type="text" value="400.00"></td>
<td><input name="paidby[]" id="paidby-2" type="text" value="">Company</td>
<td><input name="paidto[]" id="paidto-2" type="text" value=""></td>
</tr>
<tr class="alternate-3">
<td>3</td>
<td><input name="description[]" id="description-3" type="text" value=""></td>
<td><input name="amount[]" id="amount-3" type="text" value=""></td>
<td><input name="paidby[]" id="paidby-3" type="text" value=""></td>
<td><input name="paidto[]" id="paidto-3" type="text" value=""></td>
</tr>
<tr class="alternate-4">
<td>4</td>
<td><input name="description[]" id="description-4" type="text" value=""></td>
<td><input name="amount[]" id="amount-4" type="text" value=""></td>
<td><input name="paidby[]" id="paidby-4" type="text" value=""></td>
<td><input name="paidto[]" id="paidto-4" type="text" value=""></td>
</tr>
<tr class="alternate-5">
<td>5</td>
<td><input name="description[]" id="description-5" type="text" value=""></td>
<td><input name="amount[]" id="amount-5" type="text" value=""></td>
<td><input name="paidby[]" id="paidby-5" type="text" value=""></td>
<td><input name="paidto[]" id="paidto-5" type="text" value=""></td>
</tr>
Если вы видите первый ряд содержит все необходимые значения. И на второй строке вводится только сумма и description
поле и paidto
поле не вводится. Следовательно, я не хочу обрабатывать форму и вызывать ошибку.
Мой PHP код, как это
if($_POST['sform'] == "1")
{
foreach($_POST['description'] as $key => $desc)
{
if (!empty($_POST['description'][$key]) && !empty($_POST['amount'][$key]) || !empty($_POST['paidto'][$key]))
{
$query = 'INSERT INTO `expenses` (`amount`, `description`, `paidby`, `paidto`,) VALUES ('.$conn->qstr($_POST['amount'][$key]).', '.$conn->qstr($_POST['description'][$key]).', '.$conn->qstr($_POST['paidby'][$key]).', '.$conn->qstr($_POST['paidto'][$key]).')';
$results = $conn->Execute($query);
}
else
{
$error = "Form contain errors, please fix";
}
}
}
С помощью этого кода, он выдает сообщение об ошибке, а также вставляет первые 2 строки данных.
Где не должно быть вставлено в качестве второго ряда description
и paidby
значения отсутствуют. Как правильно проверить правильность и вставить только правильные данные в базу данных.
Пожалуйста, помогите ...
ты провел var_dump на глобальном ($ _GET/$ _ POST), что было представлено? –
Да, вы хотите, чтобы я опубликовал его здесь? – sammry
это поможет, тогда я могу рассказать вам путь каждого [var1] [var2] [var3] ... для пары, чтобы вы могли видеть, как это сделать. –