• ベストアンサー

INSERT INTOに関しまして。

$sql = "INSERT INTO テーブル名(name,day,kg)VALUES('','$day','-1')"; 現在このようなSQL文でINSERTしていますが、データベース内にあるカラムname全てに対してINSERTするにはどうすれば良いでしょうか??現在のSQL文ではそれができず、nameが空欄の状態で更新されてしまいます。

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

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

なるほど、質問の仕方がわるかったですね。 テーブル構造の課題があるかもしれなけど insert into hoge(name,day,kg) select distinct name,'3日',-1 from hoge でいけるんじゃない?

drmada
質問者

お礼

おー!select distinctで名前全部、という意味にしてるんですか?お時間ある時で構いませんので返答お願いいたします。試してみたいと思います。回答ありがとうございます。

その他の回答 (5)

回答No.6

drmadaに回答するのは無駄。 Yahoo知恵袋でも同様の質問をしている Yahoo知恵袋でのID:http://my.chiebukuro.yahoo.co.jp/my/drdamaga さらにはてなでもhttp://q.hatena.ne.jp/rogotaro/ PHPProでも同じようなことをしてすでに追い出されている模様。 参考URL:http://parn.s55.xrea.com/blog/213

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.5

オーソドックスにこんな風にするのがいいと思う。 DBが判らないから勝手にPostgreSQL関数で書いてるけど、これくらいなら解説要らないよね。 $sql_1 = "select distinct name from テーブル名"; $res_1 = pg_exec ($con, $sql_1); foreach (pg_fetch_all_columns ($res_1) as $name) { $sql_2 = "insert into テーブル名 (name,day,kg) values ('$name','$day','-1')"; $res_2 = pg_exec ($con, $sql_2); }

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1476598294 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1476599324 >ぜっーーーーーーーたいに、全てのユーザーに-1入れないとイケナイデス。 設計からやり直せ

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

状況がわからない >データベース内にあるカラムname全てに対してINSERTする プロシージャやら外部キーやらを使うことになるんでしょうけど おそらくやらない方がいい。 状況説明があれば代替案がでるかもしれないですね

drmada
質問者

補足

例えば 山田さん 2日 58 山田さん 1日 60 田中さん 2日 45 田中さん 1日 40 だとしたら、nameにある名前に新しい日付と-1を入れ 山田さん 3日 -1 山田さん 2日 58 山田さん 1日 60 田中さん 3日 -1 田中さん 2日 45 田中さん 1日 40 こんな感じにしたいです。

回答No.1

META情報を取得すると良いでしょう