mysql_insert_id
HTML フォームから複数のテーブルに新しいデータを挿入したい場合に関数を使用することについて質問がありますか? 私が使用しているフォームは次のとおりです。
<form method="POST" action="insert.php">
<table>
<tr>
<td>Room</td>
<td>
<select name="room">
<?php
openDB();
$sql = "SELECT room_id, name FROM room";
$rs = executeDB($sql);
while(list($room_id, $name) = mysql_fetch_array($rs)) {
echo "<option value='$room_id'>$name</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Product</td>
<td>
<select name="product">
<?php
openDB();
$sql = "SELECT product_id, name FROM product";
$rs = executeDB($sql);
while(list($product_id, $name) = mysql_fetch_array($rs)) {
echo "<option value='$product_id'>$name</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Quantity</td>
<td>
<?php
openDB();
$sql = "SELECT quantity FROM items_order";
$rs = executeDB($sql);
while(list($quantity ) = mysql_fetch_array($rs)) {
echo " <input type='number' name='quantity []' min='1' max='4'/></td>";
}
?>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit"/>
</td>
</tr>
</table>
</form>
次に、これらの変数を入力します。
if(isset($_POST['user'])) {
$user= $_POST['user'];
$room_id = $_POST['room_id'];
$product_id = $_POST['product_id'];
$quantity= $_POST['quantity'];
$status = 0; // if it's payed or not, if it is status= 1 else status = 0
コードは次のとおりです。
$sql = "INSERT INTO order (status, room_id, user_id) VALUES ('$status','$room_id','$user_id')";
$rs = mysql_query($sql);
$newid = mysql_insert_id();
$sql2 ="INSERT INTO items_order VALUES ('$newid ','$product_id','$quantity')";
$rs = mysql_query($sql2);
そしてそれはうまくいきません。
私が持っているテーブルは次のとおりです。order 、 items_order 、 product 、 order には自動インクリメントとして order_id 主キーがあり、 items_order には2つの主キーがあります: order_id と product_id は外部キーであるため、 room には room_id があり、 product には product_id があります。 order テーブルの外部キーは次のとおりです。 user_id、room_id、for. その機能を使用して新しいデータを入力する必要がありますか? そして最も重要なことは、このコードが機能しないということは何を間違っているのでしょうか? 助けてください。