我对php很新,我想知道如何循环一个动态创建的表单,以便我可以将输入到表单中的任何内容输入到我的数据库中 - 所以我的代码看起来有问题。因此,measurement和foodid是整数,unitMeasurement是选择表格类型的字符串。
<?php
if ($_POST['formSubmit'] == 1) {
$measurement = $_POST['measurement'];
$foodid = $_POST['foodid'];
$unitMeasurement = $_POST['unitMeasurement'];
if($result){
$recipeid = mysql_insert_id();
}
$i = 0;
while($i < sizeof($measurement)){
$query = "INSERT INTO recipeItems (`userid`, `foodid`, `itemMeasurement`, `itemMeasurementUnit`, `recipeid`) VALUES (".$_SESSION['userid'].",".$foodid[$i].",".$measurement[$i].",'".$unitMeasurement[$i]."',".$recipeid[$i].")";
mysql_query($query);
$i++;
}
}
?>
以下是$ result的结果:
$sql = "INSERT INTO recipes (`userid`, `rname`) VALUES (".$_SESSION['userid'].",'".$recipeName."')";
$result = mysql_query($sql);
答案 0 :(得分:0)
移过mkaatman指出在PHP中使用mysql_*()
函数是不好的做法,让我们来看看你的问题。
首先,您可以循环使用任意形式的过帐值:
<?php
foreach ($_POST as $key => $value) {
//key is the lookup value
//value is the actual posted value
}
如果没有提供更多信息,我们无法为您提供更多帮助。
就您提供的代码而言,$result
未在您提供的代码中的任何位置定义,因此我们可以假设if语句永远不会执行,或者我们可以猜测它会。
如果执行了if语句块,那么mysql_insert_id()
将无效,因为它只能返回已插入的项目 AFTER 的ID,即它会有在mysql_query()
之后调用。
另外,假设您正在使用连接字符串创建查询(这是一种非常糟糕的做法,除了远离mysql_*()
函数,您还应该查看预备语句),您需要包装任何内容是引号中的字符串。
除此之外,没有足够的信息来提供正确的帮助,如果这没有帮助,则需要提供更多代码。