入力フォームを2つの異なるテーブルに挿入しています。最初のテーブルは情報用で、もう1つのテーブルは情報の画像用です。 情報を送信するときに、別のテーブルの最初のテーブルの行ごとに複数の画像をアップロードし、各画像のlast_insert_idを2番目のテーブルに挿入したいと思います。 表1 ロケーションID |住所|連絡先 table2 pictureID |ロケーションID |ファイルパス 次のコードでは、1つの画像のみを挿入しますが、すべての画像をフォルダーにアップロードします。 <?php include_once'dbconnect.php '; mysql_query( "SET NAMES UTF8"); session_start(); $ tbl_name = "location"; $ tbl_image = "image"; if(isset($ _ POST ['btn-upload'])){ $ name2 = $ _ POST ['name2']; $ phone = $ _ POST ['phone']; $ email = $ _ POST ['email']; $ type = $ _ POST ['type']; $ other = $ _ POST ['other']; $ description = $ _ POST ['description']; $ address = $ _ POST ['address']; $ name = $ _ POST ['name']; $ lat = $ _ POST ['lat']; $ lng = $ _ POST ['lng']; $ country = $ _ POST ['country']; $ Administrative_area_level_1 = $ _ POST ['administrative_area_level_1']; $ place_id = $ _ POST ['place_id']; $ url = $ _ POST ['url']; $ website = $ _ POST ['website']; $ sql = "INSERT INTO $ tbl_name(name2、phone、email、type、other、description、address、name、lat、lng、country、administrative_area_level_1、place_id、url、website)VALUES( '$ name2'、 '$ phone' 、 '$ email'、 '$ type'、 '$ other'、 '$ description'、 '$ address'、 '$ name'、 '$ lat'、 '$ lng'、 '$ country'、 '$ Administrative_area_level_1' 、 '$ place_id'、 '$ url'、 '$ website') "; $ result = mysql_query($ sql); for($ i = 0; $ i<スクリプト> alert( '正常にアップロードされました'); window.location.href = 'index.php?success'; script> <?php } そうしないと {{ ?> <スクリプト> alert( 'ファイルのアップロード中にエラーが発生しました'); window.location.href = 'index.php?fail'; script> <?php } } if($ result){ エコー "成功"; エコー "
"; echo "メインページに戻る"; } そうしないと { エコー "エラー"; } if($ result1){ echo "アップロードに成功しました"; エコー "
"; echo "メインページに戻る"; } そうしないと { エコー "エラー"; } } ?> <?php //接続を閉じます mysql_close(); ?>
2020-12-07 22:38:17
$ b = $ pdo-> prepare( "INSERT INTO` table1` SET` address` =:address、 `contact` =:contact"); $ b-> bindParam( ":address"、$ address); $ b-> bindParam( ":contact"、$ contact); $ b-> execute(); $ LastId = $ pdo-> lastInsertId(); if($ LastId> 0){ $ b = $ pdo-> prepare( "INSERT INTO` table2` SET` pictureID` =:pictureID、 `filepath` =:filepath"); $ b-> bindParam( ":pictureID"、$ LastId); $ b-> bindParam( ":filepath"、$ filepath); $ b-> execute(); } | ついにそれを理解した。問題が発生したのはlast_insert_IDでした。 Last_instert_IDは、Forループの外側で指定する必要がありました。 $ locationID = mysql_insert_id($ conn); 上記は、最初の挿入クエリのすぐ下に追加されます。 $ sql = "INSERT INTO $ tbl_location(name2、phone、email、type、other、description、address、name、lat、lng、country、administrative_area_level_1、place_id、url、website) 値( '$ name2'、 '$ phone'、 '$ email'、 '$ type'、 '$ other'、 '$ description'、 '$ address'、 '$ name'、 '$ lat'、 '$ lng '、' $ country '、' $ administrative_area_level_1 '、' $ place_id '、' $ url '、' $ website ') "; $ result = mysql_query($ sql); $ locationID = mysql_insert_id($ conn); for($ i = 0; $ i<スクリプト> alert( '正常にアップロードされました'); window.location.href = 'index.php?success'; script> <?php } そうしないと {{ ?> <スクリプト> alert( 'ファイルのアップロード中にエラーが発生しました'); window.location.href = 'index.php?fail'; script> <?php } } | //データベースに複数の画像をアップロードする方法ですが、画像はループ付きの最後の挿入IDを持つアップロードテーブルのあるフォルダに保存されます// table1-table1 ID | field1 | field2 table2-アップロード pictureID | ID | uploadimage <?php include( "config.php"); if(isset($ _ POST ['submit'])){ $ field1 = $ _ POST ['field1']; $ field2 = $ _ POST ['field2']; $ sql = mysql_query( "INSERT INTO table1(field1、field2)VALUES( 'field1'、 'field2')"); //レコードテーブル1を挿入します if($ sql){ $ last = mysql_insert_id(); } if(isset($ _ FILES ['uploadimage'] ['name']))//ここで使用されているものと同じuploadimageファイル名とテーブル列名 {{ $ file_name_all = ""; for($ i = 0; $ i