php - foreach 和数组的错误

标签 php mysql html database foreach

您好,我正在使用 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/

相关文章:

php - 在 PHP 中以大写字母拆分?

php - 如何修复语法错误,意外的 '' (T_STRING)?

php - mysql_insert_id 和 last_insert_id 错误行为

mysql - 通过在 mysql 表上添加索引来执行时间

html - 如何使 block 元素调整到它里面的大小?

javascript - 窗口调整大小触发事件在 IE11 中不起作用

html - 使用 jQuery 模拟输入=文件点击时出现奇怪的 IE 故障

php - SQLSTATE[HY000] : General error: 2053 error occurs at Laravel

php - 如何为mysql创建DROP INDEX IF EXISTS?

mysql - 使用最新版本的EF6.2.1升级VS2013 MVC Project会导致MySQL EF6抛出SQL语法错误。错误