1

mySQLには2つのテーブル、特にaccountsとsubscriber_dataがあります。

アカウントテーブルに存在する2つの列(id、name)を使用し、それを(sub_id、value)という2つの列のsubscriber_dataテーブルに挿入します。

0、0、1のように、同じ行の同じ値フィールドにまとめられない限り、この情報を取得して他のテーブルに配置する方法を見つけることができないようです。

現在、私のPHPは次のよ​​うになっています。

$sql = "SELECT * FROM accounts";
$result = mysql_query($sql);

while($alt_result = mysql_fetch_array($result, MYSQL_NUM)){
$id[] = $alt_result[0];
$value1[] = $alt_result[1];
}
$idstring = implode(', ', $id); 
$value1 = implode(', ', $value1); 


$sql = "INSERT INTO subscriber_data (field_id, sub_id, value) VALUES('1', '$idstring', '$value1') ON DUPLICATE KEY UPDATE value='$value1'";
$result = mysql_query($sql);

私はこれの初心者です、そして明らかに何か間違ったことをしています...私は検索しましたが答えを見つけることができませんでした。

ありがとう。

4

1 に答える 1

1

挿入スクリプトを呼び出す前に、PHPで何をしているのか最初はわかりませんでした。PHPスクリプトに慣れていないためかもしれませんが、当時は十分な注意を払っていなかったためかもしれません。

ですから、私があなたがしていることを理解できる限り、あなたはそれを間違った方法でしているようです。

あるテーブルから別のテーブルに値を挿入する必要がある場合は、INSERT...SELECT構成を使用するだけです。

あなたの場合、それはおそらく次のようなものになるはずです:

INSERT INTO subscriber_data (field_id, sub_id, value)
SELECT '1', id, name
FROM accounts

これは1つの命令であり、コード内のSELECT...との両方を置き換えることに注意してください。INSERT...上記のPHPスクリプトの最後の2行だけを残しておけば十分だと思います。ここで、保存しているSQLスクリプトは$sql、私の提案に従って単純に変更する必要があります。

何か足りないものがあれば教えてください。

于 2011-05-16T19:30:07.940 に答える