Позвольте мне начать с того, что я новичок в PHP, но я здесь, чтобы учиться и буду очень признателен за вашу помощь.
Я использую следующий код для извлечения данных и создания формы. Это создает до 40 строк для заполнения пользователем. Каждая строка состоит из одной и той же информации: Описание, Количество и Частота. Остальная часть необходимой информации генерируется базой данных. (См. Скрытые поля)
<?php
$row = 0;
do {
$optid = $row_options['option_id'];
echo "<tr>\n\t<td>" . htmlentities($row_options['option']) . "</td>\n";
echo "\t<td>" . "<input name='description' type='text' size='40' maxlength='120'/>" . "</td>\n";
echo "\t<td>" . "<input name='option_id' type='hidden' value='$optid' />$<input name='amount' type='text' size='10' maxlength='7'/>" . "</td>\n";
echo "\t<td>" . "<select name='assisted_frequency'>
<option value='Monthly'>Monthly</option>
<option value='Weekly'>Weekly</option>
<option value='Daily'>Daily</option>
<option value='Hourly'>Hourly</option>
<option value='One-Time'>One-Time</option>
</select>" . "</td>\n</tr>\n";
$array[$row] = array(
$arraydesc[$row] = $_POST['description'],
$arrayamto[$row] = $_POST['amount'],
$arrayoptid[$row] = $optid,
$arrayfreq[$row] = $_POST['frequency'],
);
$row ++;
} while ($row_options = mysql_fetch_assoc($options));
$counter = $row - 1;
?>
У меня проблемы с получением информации, которую вводит пользователь. Мое намерение состоит в том, чтобы проходить по каждой строке после того, как пользователь ввел свою информацию, а затем загрузить смесь моей базы данных и информации пользователя в другую базу данных. Например, пользователь будет видеть, хотя и красивее:
form1
Option 1: description [input box] amount [input box] frequency [option box]
Option 2: description [input box] amount [input box] frequency [option box]
Option 3: description [input box] amount [input box] frequency [option box]
Option 4: description [input box] amount [input box] frequency [option box]
submit
После отправки формы выше я использую запрос, подобный следующему, для ввода данных в базу данных:
for($row=0; $row<=$counter; $row++){
$insertSQL2 = sprintf("INSERT INTO table (option_id, amount, description, frequency) VALUES (%s, %s, %s, %s)",
GetSQLValueString($arrayoptid[$row], "int"),
GetSQLValueString($arrayamto[$row], "int"),
GetSQLValueString($arraydesc[$row], "text"),
GetSQLValueString($arrayfreq[$row], "text"));
// code to submit query
}
Я пытался, для каждого, для массивов (что похоже на все, что я знаю) размещать каждую строку (строка за строкой) в базе данных. Я либо получаю только последний ряд данных, либо вообще никаких данных. Я также беспокоюсь, что метод [$ row] добавляет символы в мои данные.
Каков наилучший способ получить каждую строку ввода пользователя, а затем загрузить эти данные (строка за строкой) в базу данных? Кроме того, я буду очень признателен за ваши предложения по улучшению моей техники кодирования и подхода, который я использую.