【问题标题】:Inserting HTML form submissions into MySQL table (using PDO)将 HTML 表单提交插入 MySQL 表(使用 PDO)
【发布时间】:2015-05-21 15:21:21
【问题描述】:

我正在尝试创建一个网页,其中包含人们将填写的多个表单,单击提交,PHP 将处理运行查询以将所有数据插入表中,在各自的字段中。

我创建了一个完全可以提交一个字段的字段,当我将其扩展到 5 个字段时,我意识到我不知道如何处理代码。

<html>
<head>
<title>Asset Pass</title>
</head>
<body>

<h1>Asset Submission</h1>
<p>Connection status: <?php include '../mysqlconnect.php'; echo $db . " active"; ?></p>

<form method="post">
<div><label for="type">Type:
<br/><input type="text" name="type" id="type"/></label></div>
<div><label for="name">Name:
<br/><input type="text" name="name" id="name"/></label></div>
<div><label for="desc">Description:
<br/><input type="text" name="desc" id="desc"/></label></div>
<div><label for="loc">Location:
<br/><input type="text" name="loc" id="loc"/></label></div>
<div><label for="label">Label:
<br/><input type="text" name="label" id="label"/></label></div>
<div><input type="submit" name="submit" value="GO"/></div>
</form>

<?php
#function aquery($asset) {
#   include '../mysqlconnect.php';
#   $conn->query("INSERT INTO kit VALUES ('$asset', '$name', '$desc', '$loc', '$label');");
#}

if ($_POST['submit']) {
        include '../mysqlconnect.php';
        foreach ($_POST['type'] as $key => $value)
        {
            $type =  $_POST['type'] [$key];
            $name =  $_POST['name'] [$key];
            $desc =  $_POST['desc'] [$key];
            $loc =   $_POST['loc']  [$key];
            $label = $_POST['label'][$key];

            $sql = $conn->query("INSERT INTO Kit VALUES ('$type', '$name', '$desc', '$loc', '$label');");
        }
}

##  $asset = $_POST['name'];
#   aquery($asset);
#   printf("<h3>Entry Accepted</h3>" . "<br/><br/>" . "<strong>Submission: </strong>" . $asset . "<br/><br/>");

?>

</body>
</html>

抱歉,代码被删掉了 - 顶部和底部的注释位是我尝试使用的原始代码片段,中间的位是建议的在线解决方案,并且与我认为可行的方法接近。顺便说一句,我正在使用 PDO!

【问题讨论】:

  • 这段代码中只有一种形式,但您说的是多种形式。我不确定你在这里要求什么。 HTML 部分是否正常,或者您需要帮助来创建表单?
  • 建议的代码不起作用吗?如果是这样,它在做什么或不做什么?
  • 对不起,我的意思是多个字段,而不是表单。一个表单,多个输入,HTML 部分很好,但我很难找到正确的代码来获取提交的值(类型、名称、描述等)并将它们实际放入我的表中的同一行,在对应的字段。因此,如果我在字段中输入“显示器,三星 24 英寸,Sam 的显示器”,然后单击 GO,它将在我的 Kit 表下创建一行,这些值填充该行。
  • 回答您的问题 NathanOliver,我打开页面并立即在表单下遇到“注意:未定义索引:在 C:\xampp\htdocs\dw\dw\phpqueries.php 上提交第 30 行”,第 30 行是“if ($_POST['submit']) {”
  • $key 未定义的索引?

标签: php html mysql forms pdo


【解决方案1】:

不明白 $_POST 和 isset 是如何正常工作的。

if (isset($_POST['submit'])) 
    {
    include '../mysqlconnect.php';
    $type = filter_input(INPUT_POST, 'type', FILTER_SANITIZE_MAGIC_QUOTES);

等等,完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2020-02-26
    • 2017-08-28
    • 2013-09-03
    • 2017-10-20
    • 2015-12-03
    • 2017-05-14
    相关资源
    最近更新 更多