作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
您好,我正在使用 foreach 将一本书的多个作者插入到我的数据库中。
这是foreach:
foreach ($_POST["authors"] as $author)
{
$sqlAuthor = "INSERT INTO book_author (book_ISBN, author_ID)
VALUES('$isbn','$author')";
mysql_query($sqlAuthor);
}
我正在为作者提供 select multiple
从我为其创建了一个函数以显示在 select multiple
中的页面可用的作者。
代码生成的正是我希望它在我的数据库页面中生成的内容(所有作者的姓名)
这是 multiple()
功能:
<?php include ("includes/connections.php");
function multiple($intIdField, $strfNameField, $strlNameField, $strTableName, $strOrderField, $strNameOrdinal, $strMethod="asc") {
echo "<select multiple=\"multiple\" name=\"$strNameOrdinal\[\]\">\n";
$strQuery = "select $intIdField, $strfNameField, $strlNameField
from $strTableName
order by $strOrderField $strMethod";
$rsrcResult = mysql_query($strQuery);
while($arrayRow = mysql_fetch_assoc($rsrcResult)) {
$strA = $arrayRow["$intIdField"];
$strB = $arrayRow["$strlNameField"] . " " . $arrayRow["$strfNameField"];
echo "<option value=\"$strA \">$strB</option>\n";
}
echo "</select>";
}
?>
现在由于某种原因它抛出以下错误:
Notice: Undefined index: authors in C:\xampp\htdocs\ex\addBook.php on line 63
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\ex\addBook.php on line 63
我想它告诉我它找不到 authors
array 但我觉得很奇怪
这里是 html 中的 php 代码调用 multiple()
功能:
<?php multiple("author_ID", "author_firstname", "author_lastname", "author", "author_lastname", "authors"); ?>
有人知道我的代码有什么问题吗?
最佳答案
更改为
echo "<select multiple=\"multiple\" name=\"{$strNameOrdinal}[]\">\n";
并在使用它之前检查它是否按照其他人的建议设置。
编辑:与手头的问题无关,但您在 $strA
之后有一个额外的空间,如果不是故意的,请更改为。
echo "<option value=\"$strA\">$strB</option>\n";
关于php - foreach 和数组的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938200/
我是一名优秀的程序员,十分优秀!