0

STDとSMSの2つのテーブルがあります。私がする必要があるのは、テーブルSTDから選択して結果を配列にコピーし、配列の各要素を別のテーブルSMSに挿入することです。

これが私のコードです:

$query=mysql_query("Select from STD WHEre <my conditions>");
$result=mysql_fetch_array($query)
foreach($result as $value)
mysql_query("INSERT INTO SMS set SMS.column='$value'")

SMSテーブルはまったく更新されていません。ここの誰かがより良いアイデアを持っているか、コードの何が問題になっているのか教えてもらえますか?ありがとう。

4

4 に答える 4

1

これを試してみてください。ただし、実際のクエリと同じように、テーブルのすべての値が更新されます

    $query=mysql_query("Update SMS set 
    SMS.column=(Select <column_name> from STD where <my conditions> limit 1)");
于 2013-02-19T16:44:55.447 に答える
1

データの更新または挿入について教えてください。ユーザーJWを挿入したい場合は、すでに回答済みです。それ以外の場合は、更新クエリに条件を設定する必要があります。

$query=mysql_query("Select from STD WHEre <my conditions>");
$result=mysql_fetch_array($query)
foreach($result as $value)
mysql_query("Update SMS set SMS.column='$value' where SMS.std_id = '{$value['id']}'"); /// fieldnames are my example, You must generate Your condition.. 

または別のテーブルからの更新を使用できます

于 2013-02-19T16:45:15.897 に答える
0

これは、たった 1 つのクエリ useINSERT INTO...SELECTステートメントで実行できます。

INSERT INTO SMS (col1, col2, ...., Coll3)
SELECT col1, col2, ...., Coll3
FROM STD
于 2013-02-19T16:34:28.397 に答える
0

STDテーブルからすべての行を取得してテーブルに挿入しようとしていると思いますがSMSSMSテーブル定義はそれと同じSTDですか?

もしそうなら、これはうまくいくはずです:

$result = mysql_query('SELECT * FROM `STD` WHERE <my_conditions>');
while (($row = mysql_fetch_assoc($result)) !== FALSE) // Loop over all rows selected
{
  $columns = implode(', ', array_keys($row)); // returns string of column names e.g. "col1, col2, col3" etc.
  $values = "'" . implode("', '", array_values($row)) . "'"; // returns string of quoted values e.g. "'val1', 'val2', 'val3'"
  mysql_query("INSERT INTO `SMS` ($columns) VALUES ($values)"); // inserts the row into the SMS database table
}
于 2013-02-19T16:44:41.607 に答える