Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在while循环php中插入表单中的数据_Php_Html_Forms_Sql Insert - Fatal编程技术网

在while循环php中插入表单中的数据

在while循环php中插入表单中的数据,php,html,forms,sql-insert,Php,Html,Forms,Sql Insert,你好。我只是想问一下如何插入while循环生成的表单中的数据。这就是我到目前为止所尝试的。我添加了一个循环,它们将具有不同的id或名称,但当我尝试单击按钮时,第一个表单是唯一有效的。事先非常感谢你 <?php include "../config/dbconfig.php"; $data['productCode'] = "1"; // sample data $stmt = $conn->prepare("SELECT * FRO

你好。我只是想问一下如何插入while循环生成的表单中的数据。这就是我到目前为止所尝试的。我添加了一个循环,它们将具有不同的id或名称,但当我尝试单击按钮时,第一个表单是唯一有效的。事先非常感谢你

<?php
include "../config/dbconfig.php";

$data['productCode'] = "1"; // sample data
$stmt = $conn->prepare("SELECT * FROM tbl_category");
//$stmt->bind_param("i", $data['productCode']);
$stmt->execute();
$result = $stmt->get_result();
$i = 1;
while ($stuff = $result->fetch_assoc()) {
?>
    <div class="col-sm-6" style="margin-top:20px;">
        <div class="card">
            <div class="card-header"><?php echo $stuff['categoryname']; ?>
            </div>
            <div class="card-body outermydiv">
                <div class="myDIV">
                    <form method="POST" name="itemform" action="">
                        <div class="form-row">
                            <div class="col-5">
                                <input type="text" class="form-control" name="name[<?php echo $i; ?>]" id="itemname[<?php echo $i; ?>]" placeholder="Item name" required autocomplete="off">
                            </div>
                            <div class="col">
                                <input type="number" class="form-control" name="cost[<?php echo $i; ?>]" id="itemcost[<?php echo $i; ?>]" placeholder="Cost" required>
                            </div>
                            <div class="col">
                                <input type="number" class="form-control" name="price[<?php echo $i; ?>]" id="itemprice[<?php echo $i; ?>]" placeholder="Price" required>
                                <input type="hidden" class="form-control" name="code[<?php echo $i; ?>]" id="forcatcode[<?php echo $i; ?>]" value="<?php echo $stuff['categorycode'] ?>">
                            </div>
                            <div class="col">
                                <button type="submit" class="btn btn-success" name="btnsaveitem" id="btnsaveitem">Save</button>
                            </div>
                            <?php $i++; ?>
                            <input type="hidden" name="count" value="<?php echo $i; ?>" />
                        </div>
                    </form>

                </div>
                <br>

            </div>
        </div>
    </div>
<?php
}
?>


从重写表单开始

  • 你不需要做任何事,但我会留下声明,以防你想做其他事情
  • 不要提交数组类型数据,每个表单将提交自己的字段集
  • 添加
    $stuff['categorycode']
    作为每个提交的
    值可能更有意义,以避免需要隐藏字段。我暂时不按你的方式去做
  • 表格:


    这都是未经测试的代码。

    从重写表单开始

  • 你不需要做任何事,但我会留下声明,以防你想做其他事情
  • 不要提交数组类型数据,每个表单将提交自己的字段集
  • 添加
    $stuff['categorycode']
    作为每个提交的
    值可能更有意义,以避免需要隐藏字段。我暂时不按你的方式去做
  • 表格:


    这都是未经测试的代码。

    您的insert查询不安全/不稳定,因为您没有使用准备好的语句。为什么不在你的问题中包括一些诊断结果?当提交数据出现错误时,它是什么?感谢您回复mickmackusa爵士。当我尝试发送数据时,它只是刷新,在检查数据库时,它不会插入,只有第一个按钮起作用。您在错误日志中看到了什么错误?这段代码大部分应该重写。我一直在刷新错误日志,先生,但没有显示任何内容。先生,您的insert查询不安全/不稳定,因为您没有使用准备好的语句。为什么不在你的问题中包括一些诊断结果?当提交数据出现错误时,它是什么?感谢您回复mickmackusa爵士。当我尝试发送数据时,它只是刷新,在检查数据库时,它不会插入,只有第一个按钮起作用。您在错误日志中看到了什么错误?这段代码大部分应该重写。我一直在刷新错误日志,先生,但没有显示任何内容。谢谢先生。我试过了,所有的按钮现在都会发送数据,但它似乎还没有插入到数据库中。我尝试更改文本框的名称,但没有帮助。您的反馈缺乏具体性和诊断细节。插入不起作用的原因可能有10种。请研究如何在屏幕上显示错误,并打印出您的
    $\u POST
    变量,以确认它包含您期望的所有数据。非常感谢您,先生!现在开始工作了。我的密码打错了。非常感谢,先生,谢谢。我试过了,所有的按钮现在都会发送数据,但它似乎还没有插入到数据库中。我尝试更改文本框的名称,但没有帮助。您的反馈缺乏具体性和诊断细节。插入不起作用的原因可能有10种。请研究如何在屏幕上显示错误,并打印出您的
    $\u POST
    变量,以确认它包含您期望的所有数据。非常感谢您,先生!现在开始工作了。我的密码打错了。非常感谢你,先生。
    <?php
        if (isset($_POST['btnsaveitem'])) {
          $count = $_POST['count'];
          for ($i = 1; $i < $count; $i++) {
              //$code = $_POST['code'][$i]; // check empty and check if interger
              $foritemname = $_POST['name'][$i]; // check empty and strip tags
              //$qty = $_POST['qty'][$i]; // check empty and check if interger
              $stmt = $conn->prepare("INSERT INTO tbl_items(`itemname`) VALUES ('".$foritemname."')");
              //$stmt->bind_param("iss",$name);
              $stmt->execute();
          }
      }
    ?>
    
    foreach ($stmt->get_result() as $i => $stuff) { ?>
        <div class="col-sm-6" style="margin-top:20px;">
            <div class="card">
                <div class="card-header"><?php echo $stuff['categoryname']; ?></div>
                <div class="card-body outermydiv">
                    <div class="myDIV">
                        <form method="POST">
                            <div class="form-row">
                                <div class="col-5">
                                    <input type="text" class="form-control" name="name" placeholder="Item name" required autocomplete="off">
                                </div>
                                <div class="col">
                                    <input type="number" class="form-control" name="cost" placeholder="Cost" required>
                                </div>
                                <div class="col">
                                    <input type="number" class="form-control" name="price" placeholder="Price" required>
                                </div>
                                <div class="col">
                                    <button type="submit" class="btn btn-success" name="btnsaveitem">Save</button>
                                </div>
                            </div>
                            <input type="hidden" class="form-control" name="code" value="<?php echo $stuff['categorycode']; ?>">
                        </form>
                    </div>
                    <br>
                </div>
            </div>
        </div>
        <?php
    }        
    
    if (isset($_POST['btnsaveitem'])) {
        $stmt = $conn->prepare("INSERT INTO tbl_items(`itemname`) VALUES (?)");
        $stmt->bind_param("s",$_POST['name']);
        $stmt->execute();
    }