Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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
使用一个PHP提交按钮更新多个MySQL行_Php_Mysql_Database - Fatal编程技术网

使用一个PHP提交按钮更新多个MySQL行

使用一个PHP提交按钮更新多个MySQL行,php,mysql,database,Php,Mysql,Database,我最难弄明白我认为应该简单的事情。我需要用一个提交按钮更新数据库中的多行。我现在为每一行使用提交,但我需要合并它。这是我正在尝试的。我哪里出错了?(我在网上找到了很多教程,我想我把所有的东西都弄混了) 以下是表格: <?php foreach ($teams as $team): $id[]=$team['id'];?> <form action="?update" method="post"> <div class="team-box">

我最难弄明白我认为应该简单的事情。我需要用一个提交按钮更新数据库中的多行。我现在为每一行使用提交,但我需要合并它。这是我正在尝试的。我哪里出错了?(我在网上找到了很多教程,我想我把所有的东西都弄混了)

以下是表格:

<?php foreach ($teams as $team): 
$id[]=$team['id'];?>


<form action="?update" method="post">
    <div class="team-box">
        <h2><?php echo $team['name'] ?></h2>

        <label for="name">Name:</label>
        <input type="text" name="name" value="<?php echo $team['name'] ?>" />

        <label for="name">Match Wins:</label>
        <input type="text" name="mwins" value="<?php echo $team['mwins'] ?>" />

        <label for="name">Match Losses:</label>
        <input type="text" name="mlosses" value="<?php echo $team['mlosses'] ?>" />

        <label for="name">Match Ties:</label>
        <input type="text" name="mties" value="<?php echo $team['mties'] ?>" />

        <label for="name">Game Wins:</label>
        <input type="text" name="gwins" value="<?php echo $team['gwins'] ?>" />

        <label for="name">Game Losses:</label>
        <input type="text" name="glosses" value="<?php echo $team['glosses'] ?>" />

        <input type="hidden" name="id" value="<?php echo $team['id'] ?>" />
    </div>

提前谢谢

由于每个更新查询的所有字段名称都会发生更改,因此您需要像以前一样执行单独的查询。我认为您无法执行单个更新查询


我不明白,执行几个更新查询有什么问题?

有几个问题需要解决

  • 表单必须在foreach之外

  • 与_postcode一致的“…name=“name”value=“…”应改为: …name=“name”value=“

  • 这样,一个帖子就会提交,比如

      name123="Rangers"
      mwins174="123"
    
    那么你需要所有的身份证。您可以通过在foreach中发布以下命令来实现:

     <input type="hidden" name="id[]" value="<?php print $team['id']; ?>" />
    

    这样你就有了一个提交和多个更新。

    原则上我可以这样做。。。但这不是我对foreach循环所做的吗?(我不熟悉php,所以可能弄错了)。但我的理解是,foreach循环通过每个条目(通过id)循环,并为每个条目提交一个单独的查询。要么我不明白你的问题是什么,要么我会像你已经做的那样编写代码(每个id一个更新查询)。没有$_POST['name'。$id]只有$_POST['name')。如果重复上述内容,你想要name=“name[]”查看print\r($\u POST)以了解您正在使用的内容
     <input type="hidden" name="id[]" value="<?php print $team['id']; ?>" />
    
     <input type="hidden" name="id[]" value="123" />
     ...
     <input type="hidden" name="id[]" value="456" />
    
     <input type="text" name="name[<?php print $team['id']; ?>]" value="...
    
    foreach($id as $team_id)
    {
        // Pseudocode
        UPDATE... SET name=$name[$team_id]... WHERE id = $team_id;
    }