PHP从html表单向mysql插入可变数量的记录


PHP INSERT a variable number of records to mysql from a html form

我有一个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