フォームを使用してデータベースを更新しようとしていますが、アイテムを追加したり更新したりしていません。アイテムを削除することはできますが、それだけです。私は間違って何をしているのですか?これを解決するにはどうしたらいいですか?PHP/MYSQL複数のテーブルを挿入/更新する方法
ご協力いただきありがとうございます。
INSERTの商品ページ
<?php
// Parse the form data and add inventory item to the system
if (isset($_POST['PART_DESC'])) {
$PART_DESC = $row["PART_DESC"];
$SERIAL_NUM = $row["SERIAL_NUM"];
$RACK_NUM = $row["RACK_NUM"];
$PART_TYPE_ID = $row["PART_TYPE_ID"];
$PART_TYPE_DESC = $row["PART_TYPE_DESC"];
// See if that product name is an identical match to another product in the system
$sql = mysql_query("SELECT PART_ID FROM PART WHERE ='$PART_ID' LIMIT 1");
$productMatch = mysql_num_rows($sql); // count the output amount
if ($productMatch > 0) {
echo 'Sorry you tried to place a duplicate "Product Name" into the system, <a href="inventory.php">click here</a>';
exit();
}
// Add this product into the database now
$sql = mysql_query("INSERT INTO PART (PART_DESC, SERIAL_NUM, RACK_NUM, PART_TYPE_DESC, LOCATION)
VALUES('$PART_DESC','$SERIAL_NUM','$RACK_NUM','$PART_TYPE_ID','$PART_TYPE_DESC',now())") or die (mysql_error());
$pid = mysql_insert_id();
exit();
}
?>
<?php
// Script Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
EDITの商品ページ
<?php
// Gather this product's full information for inserting automatically into the edit form below on page
if (isset($_GET['pid'])) {
$targetID = $_GET['pid'];
$sql = mysql_query("SELECT PART_ID, PART_DESC, SERIAL_NUM, RACK.RACK_NUM, PART.PART_TYPE_ID, PART_TYPE_DESC, LOCATION
FROM PART
INNER JOIN PART_TYPE ON PART.PART_TYPE_ID = PART_TYPE.PART_TYPE_ID
INNER JOIN RACK ON RACK.RACK_NUM = PART.RACK_NUM
WHERE PART_ID='$targetID' LIMIT 1");
$productCount = mysql_num_rows($sql); // count the output amount
if ($productCount > 0) {
while($row = mysql_fetch_array($sql)){
$id = $row["PART_ID"];
$PART_DESC = $row["PART_DESC"];
$SERIAL_NUM = $row["SERIAL_NUM"];
$RACK_NUM = $row["RACK_NUM"];
$PART_TYPE_ID = $row["PART_TYPE_ID"];
$PART_TYPE_DESC = $row["PART_TYPE_DESC"];
$LOCATION = $row["LOCATION"];
}
} else {
echo "Sorry dude that crap dont exist.";
exit();
}
}
?>
<?php
// Parse the form data and add inventory item to the system
if (isset($_POST['PART_DESC'])) {
$pid = mysql_real_escape_string($_POST['thisID']);
$PART_DESC = $row["PART_DESC"];
$SERIAL_NUM = $row["SERIAL_NUM"];
$RACK_NUM = $row["RACK_NUM"];
$PART_TYPE_ID = $row["PART_TYPE_ID"];
$PART_TYPE_DESC = $row["PART_TYPE_DESC"];
$LOCATION = $row["LOCATION"];
// See if that product name is an identical match to another product in the system
$sql = mysql_query("UPDATE PART SET PART_DESC='$PART_DESC', SERIAL_NUM='$SERIAL_NUM', PART.PART_TYPE_DESC='$PART_TYPE_DESC', RACK.RACK_NUM='$RACK_NUM', LOCATION='$LOCATION'
INNER JOIN PART_TYPE ON PART.PART_TYPE_ID = PART_TYPE.PART_TYPE_ID
INNER JOIN RACK ON RACK.RACK_NUM = PART.RACK_NUM WHERE PART.PART_ID='$pid'");
header("location: inventory.php");
exit();
}
>
更新のために 'またはdie(mysql_error());'を追加して、なぜ更新していないのかを確認してください。また、getからintにIDを静的にキャストするか、それをエスケープする必要があります。 –
'$ PART_DESC = mysql_real_escape_string($ row [" PART_DESC "]);またはそのデータはあなたのデータベースのものですか? – Johan
データベースから来ています –