2011-11-09 29 views
0

これは基本的に、2つ前のテーブルから抽出されたカラムから3番目のテーブルにカラムを挿入しようとしています。異なるテーブルからカラムを抽出して別のカラムに挿入

ユーザーの頭の写真を格納する1つの画像テーブル と、必要に応じて正しいユーザーに関連付けられた正しい頭の写真を表示するように設計されたリファレンステーブルのようなidテーブル1つ

私のコード(...ユーザーのクエリのように、または単に表示する):

$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'"); 
$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'"); 
$sql = "INSERT INTO id_table (main_id, id_info, id_image) 
     VALUES (NULL, $result_1, $result_2);"; 
if(!mysql_query($sql,$connect_database)){ 
    die('Error: ',mysql_error()); 
} 

したがって、上記のコードは、単に私の考えを示した:
1.情報テーブルから情報のIDを取得
2.それぞれid_tableの列に
3.挿入の両方のIDを画像テーブルから

を画像のIDを取得それから私は、このエラー情報を得ました:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id #4, Resource id #5)' at line 1

問題がどこにあるか、私は把握できませんでした...

答えて

1

$result_1および$result_2には、結果へのポインタが含まれています。実際の値を取得するには、それらをループする必要があります。あなただけのクエリを実行し、あなたのコードでは

$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'"); 
$row1 = mysql_fetch_array($result_1); // get 1st result row 

$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'"); 
$row2 = mysql_fetch_array($result_2); // get 2nd result row 

$sql = "INSERT INTO id_table (main_id, id_info, id_image) 
     VALUES (NULL, '{$row1['info_id']}', '{$row1['image_id']}');"; 
if(!mysql_query($sql,$connect_database)){ 
    die('Error: ',mysql_error()); 
} 
+0

を私はちょうどINSERT INTO id_table」、例えば、別のSQL構文を挿入しようとするとどのような(パラメータ)SELECT .. FROM .. WHERE .. " – jasonkim

+0

@ y26jinできません。私は自分の答えを更新しました。 – Neal

+0

正直なところ、私はまだ失われています(イムノブ..)。 – jasonkim

0

はこれを試してみてください。しかし、フィールドまたは列の値を取得しませんでした。 mysql_fetch_arrayまたはmysql_fetch_rowを使用してフェッチできます。

Amはあなたの正確なニーズにコードを変更します。詳細については、

$result_1 = mysql_query("SELECT info_id FROM info WHERE info_name = '$_POST[name]'");  
$row1 = mysql_fetch_row($result_1); 
$infoid = $row1[0]; 
$result_2 = mysql_query("SELECT image_id FROM image WHERE image_name = '$_FILES[file][name]'"); 
$row2 = mysql_fetch_row($result_2); 
$imageid = $row2[0] 

$sql = "INSERT INTO id_table (main_id, id_info, id_image)   VALUES (NULL, $infoid, $imageid);"; 
if(!mysql_query($sql,$connect_database)){ die('Error: ',mysql_error()); } 

を参照してください: - http://in3.php.net/manual/en/function.mysql-fetch-row.php http://in3.php.net/manual/en/function.mysql-fetch-array.php

関連する問題