送信配列からテーブルデータを更新すると、同じデータが原因ですべての行が

クリス・イエーツ

データベースからデータを取得してフォームに表示しています。

値を編​​集してから、フォームを再送信すると、対応する行に基づいてテーブルのデータが更新されますが、インデックス値4のみに基づいてテーブルが更新されますの他のすべてのデータteamidは、4インデックスの配列内のデータに置き換えられています

var_dumpフォームが送信されときは次のとおりです(これは変更されたデータを示しているため、正しく送信されたため、ループの問題を想定しています)

array (size=12)
      'teamid' => string '1' (length=1)
      'activity' => string 'Mill 1' (length=6)
      'activity2' => string 'Enter Details' (length=13)
      'info' => string 'Auto process' (length=12)
      'info2' => string 'Enter Details' (length=13)
      'wsno' => string '1' (length=1)
      'labour' => 
        array (size=5)
          0 => string 'Admin' (length=5)
          1 => string 'QC Manager' (length=10)
          2 => string 'Supervisor' (length=10)
          3 => string 'Team Leaders' (length=12)
          4 => string 'Line Operators' (length=14)
      'hours' => 
        array (size=5)
          0 => string '1' (length=1)
          1 => string '1' (length=1)
          2 => string '2' (length=1)
          3 => string '8' (length=1)
          4 => string '8' (length=1)
      'noworkers' => 
        array (size=5)
          0 => string '2' (length=1) << CHANGED THIS FROM 1 TO 2
          1 => string '1' (length=1)
          2 => string '1' (length=1)
          3 => string '1' (length=1)
          4 => string '3' (length=1)
      'rateperhour' => 
        array (size=5)
          0 => string '11.00' (length=5)
          1 => string '10.00' (length=5)
          2 => string '9.00' (length=4)
          3 => string '8.50' (length=4)
          4 => string '8.00' (length=4)
      'totalcost' => 
        array (size=5)
          0 => string '22' (length=2) << THIS IS THE NEW CALCULATED VALUE
          1 => string '10.00' (length=5)
          2 => string '18.00' (length=5)
          3 => string '68.00' (length=5)
          4 => string '192.00' (length=6)
      'addteam' => string '' (length=0)

私が変更した値は最初のインデックス(0)にありました-ワーカーなしが2であり、送信時に値が正しいため

if(!isset($_GET['team'])) {
    $teamid = 1;
} else {
    $teamid = $_GET['team'];
}
$teamlq = mysqli_query($dbc,"SELECT * FROM `teams` WHERE `teamid` = '$teamid'");
$teamlr = mysqli_fetch_assoc($teamlq);
$actq = mysqli_query($dbc,"SELECT * FROM `teams` GROUP BY `activity` ASC");
$act = mysqli_fetch_assoc($actq);
$infoq = mysqli_query($dbc,"SELECT * FROM `teams` GROUP BY `info` ASC");
$info = mysqli_fetch_assoc($infoq);
$wsq = mysqli_query($dbc,"SELECT * FROM `workstation_costing` GROUP BY `wsno` ASC");
$ws = mysqli_fetch_assoc($wsq);
if(isset($_POST['addteam'])) {
    $labour[] = $_POST['labour'];
    $hours[] = $_POST['hours'];
    $noworkers[] = $_POST['noworkers'];
    $rateperhour[] = $_POST['rateperhour'];
    $totalcost[] = $_POST['totalcost'];
    $maxrows = 5;
    $i = 0;
    $info = $_POST['info'];
    if($_POST['info'] == 'other') {
        $info = $_POST['info2'];
    }
    $activity = $_POST['activity'];
    if($_POST['activity'] == 'other'){
        $activity = $_POST['activity2'];
    }
    echo "<pre>";
    var_dump($_POST);
    echo "</pre>";
    do {
        $labour = $_POST['labour'][$i];
        $rateperhour = $_POST['rateperhour'][$i];
        $hours = $_POST['hours'][$i];
        $noworkers = $_POST['noworkers'][$i];
        $totalcost = $_POST['totalcost'][$i];

        $insert = mysqli_query($dbc,"UPDATE `teams` SET `activity` = '$activity',`info` = '$info',`wsno` = '$_POST[wsno]',`labour` = '$labour',`rateperhour`='$rateperhour',`hrsengaged` = '$hours',`noworkers`='$noworkers',`totalcost`='$totalcost' WHERE `teamid` = '$_POST[teamid]'");
        echo mysqli_error($dbc);
        $i++;
    }while ($i < $maxrows);
}

teamidこれは、フォームが更新されている1を示す表のスクリーンショットです(フォーム送信前)。フォーム送信前

フォーム送信後

dWinder

ループ内で次のことを行うことに注意してください。

$insert = mysqli_query($dbc,"UPDATE `teams` SET `activity` = '$activity',`info` = '$info',`wsno` = '$_POST[wsno]',`labour` = '$labour',`rateperhour`='$rateperhour',`hrsengaged` = '$hours',`noworkers`='$noworkers',`totalcost`='$totalcost' WHERE `teamid` = '$_POST[teamid]'");

ただし、更新することは決してない$_POST[teamid]ので、各反復ですべてのフィールドを$_POST[teamid]ループの現在のデータで更新します->テーブルに対するこの原因には、そのすべての行の最後のループ値のみが含まれteamidます。

これを克服するためにID、テーブルに列を追加し、ループで行を更新するのではIDなく、行を更新することができますteamid->これにより、反復ごとに1行が更新されます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

条件が異なる列として、同じテーブルから同じデータを選択します

分類Dev

テーブルからすべてのデータを取得する方法と、同じ値が1つの列で繰り返される場合、その行は1回カウントする必要がありますか?

分類Dev

同じテーブルのデータで行を更新する

分類Dev

SQLデータベースの列を更新すると、すべての行が同じデータで更新されます

分類Dev

1つのテーブルのデータが原因で、複数のテーブルから行を削除する

分類Dev

RPostgreSQLを使用して、データフレームから同じ列を持つPostgreSQLデータベーステーブルのテーブルに行を追加/更新するにはどうすればよいですか?

分類Dev

4番目の列に別のテーブルと同じIDが含まれているテーブルの3列にすべてのデータを表示するにはどうすればよいですか?

分類Dev

同じテーブルの異なる列と行からデータを効率的に返す方法は?

分類Dev

同じテーブル内の他の複数の行から並べ替える必要があるデータで行を更新するにはどうすればよいですか?

分類Dev

同じテーブルから同じデータを更新する

分類Dev

IDが同じでインデックスが異なるテーブルのデータを更新する方法

分類Dev

同じテーブルの2つの列で値が同じであるデータを検索する

分類Dev

列に応じて、同じテーブルから同じデータを更新します

分類Dev

配列インデックスが同じ場合にforeachでテーブルデータを取得する方法

分類Dev

MSSQLの1つを除くすべての列に同じデータがある2つの行からデータを取得する方法

分類Dev

MySQLを使用して1つのテーブルの列値が別のテーブルと同じである場合にのみ2つのテーブルからデータを返す方法は?

分類Dev

sql同じテーブル同じ列ですが2つのデータ

分類Dev

同じテーブルのデータでテーブルを更新する

分類Dev

Sqliteデータベース内のすべてのテーブルから同時にデータを削除することは可能ですか?

分類Dev

Sqliteデータベース内のすべてのテーブルから同時にデータを削除することは可能ですか?

分類Dev

foreachループが閉じるとすぐに、追加したデータテーブル行がテーブルから消えるのはなぜですか?

分類Dev

同じデータで SQL 行を複製するが、すべての列を定義していない

分類Dev

値がRailsの配列の値の1つと一致するテーブル内のすべてのアイテムについて、データベースにクエリを実行するにはどうすればよいですか?

分類Dev

同じ列に両方の変数があるテーブルからすべての行を取得します

分類Dev

データが他のデータと一致する場合にテーブルのデータを更新してからmysqlに挿入する方法

分類Dev

テーブルを自分自身と比較して、同じデータの行を 1 列だけに取得するにはどうすればよいですか?

分類Dev

ksqlテーブルのデータが重複しています| 同じROWKEY更新でksqlテーブルの行を更新するにはどうすればよいですか?

分類Dev

ValueError:データのカーディナリティがあいまいです。すべての配列に同じ数のサンプルが含まれていることを確認してください

分類Dev

モデルのDBテーブルを使用して行うのと同じように、ユーザーが検索バーに入力したときに配列の結果をフィルタリングするにはどうすればよいですか?

Related 関連記事

  1. 1

    条件が異なる列として、同じテーブルから同じデータを選択します

  2. 2

    テーブルからすべてのデータを取得する方法と、同じ値が1つの列で繰り返される場合、その行は1回カウントする必要がありますか?

  3. 3

    同じテーブルのデータで行を更新する

  4. 4

    SQLデータベースの列を更新すると、すべての行が同じデータで更新されます

  5. 5

    1つのテーブルのデータが原因で、複数のテーブルから行を削除する

  6. 6

    RPostgreSQLを使用して、データフレームから同じ列を持つPostgreSQLデータベーステーブルのテーブルに行を追加/更新するにはどうすればよいですか?

  7. 7

    4番目の列に別のテーブルと同じIDが含まれているテーブルの3列にすべてのデータを表示するにはどうすればよいですか?

  8. 8

    同じテーブルの異なる列と行からデータを効率的に返す方法は?

  9. 9

    同じテーブル内の他の複数の行から並べ替える必要があるデータで行を更新するにはどうすればよいですか?

  10. 10

    同じテーブルから同じデータを更新する

  11. 11

    IDが同じでインデックスが異なるテーブルのデータを更新する方法

  12. 12

    同じテーブルの2つの列で値が同じであるデータを検索する

  13. 13

    列に応じて、同じテーブルから同じデータを更新します

  14. 14

    配列インデックスが同じ場合にforeachでテーブルデータを取得する方法

  15. 15

    MSSQLの1つを除くすべての列に同じデータがある2つの行からデータを取得する方法

  16. 16

    MySQLを使用して1つのテーブルの列値が別のテーブルと同じである場合にのみ2つのテーブルからデータを返す方法は?

  17. 17

    sql同じテーブル同じ列ですが2つのデータ

  18. 18

    同じテーブルのデータでテーブルを更新する

  19. 19

    Sqliteデータベース内のすべてのテーブルから同時にデータを削除することは可能ですか?

  20. 20

    Sqliteデータベース内のすべてのテーブルから同時にデータを削除することは可能ですか?

  21. 21

    foreachループが閉じるとすぐに、追加したデータテーブル行がテーブルから消えるのはなぜですか?

  22. 22

    同じデータで SQL 行を複製するが、すべての列を定義していない

  23. 23

    値がRailsの配列の値の1つと一致するテーブル内のすべてのアイテムについて、データベースにクエリを実行するにはどうすればよいですか?

  24. 24

    同じ列に両方の変数があるテーブルからすべての行を取得します

  25. 25

    データが他のデータと一致する場合にテーブルのデータを更新してからmysqlに挿入する方法

  26. 26

    テーブルを自分自身と比較して、同じデータの行を 1 列だけに取得するにはどうすればよいですか?

  27. 27

    ksqlテーブルのデータが重複しています| 同じROWKEY更新でksqlテーブルの行を更新するにはどうすればよいですか?

  28. 28

    ValueError:データのカーディナリティがあいまいです。すべての配列に同じ数のサンプルが含まれていることを確認してください

  29. 29

    モデルのDBテーブルを使用して行うのと同じように、ユーザーが検索バーに入力したときに配列の結果をフィルタリングするにはどうすればよいですか?

ホットタグ

アーカイブ