こんにちは私は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
、とても奇妙だと思います
multiple()
関数を呼び出すためのhtml内のphpコードは次のとおりです。
<?php multiple("author_ID", "author_firstname", "author_lastname", "author", "author_lastname", "authors"); ?>
誰かが私のコードの何が問題になっているのか分かりますか?