15733
10060
入力フォームを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';

<?php
}
そうしないと
{{
?>
<スクリプト>
alert( 'ファイルのアップロード中にエラーが発生しました');
window.location.href = 'index.php?fail';

<?php
}
}
if($ result){
エコー "成功";
エコー "
"; echo "メインページに戻る"; } そうしないと { エコー "エラー"; } if($ result1){ echo "アップロードに成功しました"; エコー "
"; echo "メインページに戻る"; } そうしないと { エコー "エラー"; } } ?> <?php //接続を閉じます mysql_close(); ?>
$ 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';

<?php
}
そうしないと
{{
?>
<スクリプト>
alert( 'ファイルのアップロード中にエラーが発生しました');
window.location.href = 'index.php?fail';

<?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