PHP INSERT – переменное количество записей в mysql из html-формы

У меня есть HTML-форма, которая извлекает различные типы продуктов, которые пользователь вводит цифры акций. Затем эти данные должны быть добавлены в новую таблицу. Вот запрос PHP, который заполняет форму.

require_once 'config.php'; $i = 1; $sql = "SELECT * FROM dealer_product WHERE customer_code='$custcode' ORDER BY prod_code"; $result = mysql_query($sql); while ($row = mysql_fetch_array($result)) { $prodcode = $row['prod_code']; echo "<tr><td><input type='text' name='prod".($i++)."' value='" . $prodcode . "'/></td><td><input type='number' name='openstock".($i++)."'/></td><td><input type='number' name='sold".($i++)."'/></td></tr>"; } mysql_close($con); ?> 

Я знаю, как ВСТАВИТЬ заданное количество нескольких записей, но как я могу ВСТАВИТЬ различное количество записей? Заранее спасибо. Извините за свои базовые знания, я сетевой администратор, а не PHP MYSQL.

Назовите свои поля ввода, как если бы они были массивами, например:

 <input name="prods[0]" /> 

Затем вы можете вывести переменное количество входов в свой HTML, даже добавить еще с JavaScript. PHP преобразует вход в массив, по которому вы можете выполнять итерацию:

 <?php foreach ($_POST['prods'] as $prod) { /* Process $prod */ } ?> 

Я рекомендую вам идти таким же образом, но используя

while ($ row = mysql_fetch_assoc ($ result))

И теперь у вас нет чисел в качестве индекса, который является более сложным способом увидеть вещи, лучше увидеть ассоциативный путь, который является именем столбца из вашей таблицы в mysql.

И вы делаете много приращений, делающих $ i ++ много раз. Я не знаю, делаете ли вы это намеренно, но если не просто увеличиваете $ i один раз.

Также количество строк может быть достигнуто с помощью этого:

 if (mysql_num_rows($result) == 0) { echo "No rows found, nothing to print so am exiting"; exit; } 

Просмотр руководства

http://us1.php.net/mysql_fetch_assoc