私はphpとmySqlが初めてです。PHPとmysqlを使用して複数の行を更新しようとしています。
MySQL データベースの複数行の更新に問題があります。データベース内のテーブルの最後の行のみを更新します。たとえば、ユーザーが商品の表示をクリックします。このページには、現在データベースにある 10 個の製品が一覧表示されます。また、ユーザーはオンクリック方式で製品情報を更新したいと考えています。更新が完了したら、ユーザーは送信をクリックします。
問題は、テーブル内の最後の製品の情報のみをキャプチャして更新することです。foreach() 関数に入れてみました。しかし、うまくいきません。
助けてください。PHP と mySQL を 1 週間も経たないうちに学びました。どんな助けにも感謝します。
<?php
include 'dbconn.inc.php';
include 'functions.inc.php';
$sql = "SELECT * FROM products";
$res = $mysqli->query($sql);
while( $row = $res->fetch_array(MYSQLI_ASSOC) ){
$products($row['id']) = 'id';
}
$id = $mysqli->real_escape_string( $_POST['id'] );
$weight = $mysqli->real_escape_string( $_POST['weight'] );
$name = $mysqli->real_escape_string( $_POST['name'] );
$supplier_id = $mysqli->real_escape_string( $_POST['supplier_id'] );
$price = $mysqli->real_escape_string( $_POST['price'] );
$description = $mysqli->real_escape_string( $_POST['description'] );
foreach( $products as $id){
$sql = "UPDATE products
SET
`id` = '$id',
`weight` = '$weight',
`price` = '$price',
`name` = '$name',
`supplier_id` = '$supplier_id',
`description` = '$description'
WHERE `id` = '$id'";
}