• ベストアンサー

複数行のレコードを他のテーブルに保存?

$st = $pdo->query("SELECT * FROM list WHERE tno='" . $_POST["tno"] . "' ");で摘出した複数行のレコードを他のテーブルに保存したいのですが、うまくいきません。よろしくご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

sqlの種別によってちがいますが insert into table_x select * from table_y 的な処理でいけるものもあります

murakami5656
質問者

お礼

$stmt = $pdo->prepare("insert into reg select * from list WHERE tno='" . $_POST["tno"] . "' ");で解決しました。ありがとうございました。

その他の回答 (2)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.3

提示されたソースはqueryメソッドだけなので、そもそも抽出もしていませんよね。 fetchでLoopしながらinsert文のexecute もしくは fetchall → 取得した結果をLoopしながらinsert文のexecute が必要ですが、その部分はどう書かれているんでしょうか?それを提示してもらわないことには何も回答出来ません。

murakami5656
質問者

補足

説明不足ですみませんでした。下記です。 $st = $pdo->query("SELECT * FROM list WHERE tno='" . $_POST["tno"] . "' "); while ($row = $st->fetch()) { $tno = htmlspecialchars($row['no']); $id = htmlspecialchars($row['id']); $name = htmlspecialchars($row['name']); $kin = htmlspecialchars($row['kin']); $kazu = htmlspecialchars($row['kazu']); $kei = htmlspecialchars($row['kei']);

  • NeilMania
  • ベストアンサー率30% (40/131)
回答No.1

他のテーブルに保存するにも抽出処理しかしてないですよね。 他のソースを載せずに質問を投稿しているのか、このソースで出来ると 思っているのかどちらですかね。