因此,我在页面2上有一个动态表,用户可以在其中添加任意数量的条目。提交后的3页是所有的信息都很好。问题是我在数组中的for循环迭代不起作用。代码如下:
for($i = 0; $i < sizeof($_POST["fname_new"]); $i++) {
$fname_new = $_POST["fname_new"][i];
$lname_new = $_POST["lname_new"][i];
$phone_new = $_POST["phone_new"][i];
$email_new = $_POST["email_new"][i];
$ethnicity_new = $_POST["ethnicity_new"][i];
$stmt = $link -> prepare("INSERT INTO Conference (`First Name`, `Last Name`, `Phone`, `Email`, `Ethnicity`) VALUES (:first_new, :last_new, :phone_new, :email_new, :ethnicity_new)");
$stmt->bindParam(':first_new', $fname_new);
$stmt->bindParam(':last_new', $lname_new);
$stmt->bindParam(':phone_new', $phone_new);
$stmt->bindParam(':email_new', $email_new);
$stmt->bindParam(':ethnicity_new', $ethnicity_new);
$stmt->execute();
}所以当我这么做的时候
echo sizeof($_POST["fname_new"]);它向我显示了正确的数字,所以如果用户在第2页上添加了3行,那么回显的值应该是3,它就是3。当我这样做的时候:
echo $_POST["fname_new"][0];然后适当地给出第一行中的第一个名字。我可以用任何数字替换0,只要它在边界内,并且是正确的。但出于某种原因当我这么做的时候
echo $_POST["fname_new"][i];它不打印任何东西。我不知道为什么这个for循环不能工作。从逻辑上讲这是正确的。有什么想法吗?
发布于 2012-09-19 17:58:49
您忘记了$指向变量i
试试这个:
echo $_POST["fname_new"][$i];发布于 2012-09-19 18:01:16
除了给出的所有答案之外,您还忽略了准备好的查询的要点。您只需准备一次查询,就会多次使用它的。
所以:
$stmt = $link -> prepare(
"INSERT INTO Conference (`First Name`, `Last Name`, `Phone`, `Email`, `Ethnicity`)
VALUES (:first_new, :last_new, :phone_new, :email_new, :ethnicity_new)");应该在循环之外!
发布于 2012-09-19 17:59:17
你少了一个$
$fname_new = $_POST["fname_new"][$i];
$lname_new = $_POST["lname_new"][$i];
$phone_new = $_POST["phone_new"][$i];
$email_new = $_POST["email_new"][$i];https://stackoverflow.com/questions/12492430
复制相似问题