人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPとSQLの命令文について質問です。

現在PHPで管理システムを作成しています。

http://oskuni7.sakura.ne.jp/B_auction_system/rakusatugo_hassou.php

質問はSQL文のINSERT命令文についてです。

チェックボックスにチェックを入れた後、チェックされた管理番号のあるいくつかのデータをINSERT命令文でSQLのテーブルに登録したいと考えています。

命令文を作成したのですがINSERTできませんでした。

私の知識不足かもしれないのですが、もしこれから希望するINSERT文を作成していただける方おりましたら作成していただけないでしょうか?

コメントにて作成するSQL命令文がどのようなものかを書かせていただきます。

お手数をおかけしますがよろしくお願いいたします。

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:PHP SQL いただきます コメント システム
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● JULY
●23ポイント

厳密に言うと、何の SQL サーバを使っているか、という問題もありますが、とりあえず、下記のページは PostgreSQL での INSERT 文のマニュアルです。

で、別のテーブルの内容を INSERT する話ですから、

INERT INTO 挿入先テーブル名 (カラム名、カラム名、...) SELECT カラム名、カラム名、... FROM 元データのテーブル名 WHERE 条件

というのが基本になります。コメントにある SQL 文だと VALUES 以降が SELECT 文になります。

◎質問者からの返答

ご回答ありがとうございます。


2 ● kn1967
●100ポイント ベストアンサー

MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.2.4.1 INSERT ... SELECT 構文

mysql_query("INSERT INTO YAHUOKU_HASSOU (KANRI_NO,TITLE,HASSOU_HOUHOU,YAHOO_ID,PRODUCT_ID)
VALUES(YAHUOKU_KANRI.KANRI_NO,YAHUOKU_KANRI.B3,YAHUOKU_KANRI.M7,YAHUOKU_KANRI.M2, YAHUOKU_KANRI.B6)
WHERE YAHUOKU_KANRI.JOUTAI='発送リスト';");

YAHUOKU_KANRI.KANRI_NOなどと指定してもFROM句の記述が無いので

YAHUOKU_KANRIテーブルと結び付けてはくれません。


mysql_query("
 INSERT INTO YAHUOKU_HASSOU (KANRI_NO, TITLE, HASSOU_HOUHOU, YAHOO_ID, PRODUCT_ID)
 SELECT KANRI_NO, B3, M7, M2, B6
 FROM YAHUOKU_KANRI
 WHERE JOUTAI='発送リスト';
");

※余談ですがJOUTAIなどは通常はコード番号などを用います。

「発送リスト」のように言葉であらわしてはいけないとは断言しませんが

文字ではなく数値のほうが使用メモリも少なく、計算時間も短くすみます。また、

言葉よりも1桁2桁の数字やアルファベットを用いるほうが少し早く処理できます。

◎質問者からの返答

ご回答ありがとうございます。

とても勉強になります。


3 ● kn1967a
●22ポイント

質問者は脳が不自由な人間なのか?

質問のレベルがどんどん低下している。


PHPスクリプトは読めないし、SQLは文法が滅茶苦茶じゃん。

まずはこの本を読め。

これならわかるSQL 入門の入門

これならわかるSQL 入門の入門

  • 作者: 五十嵐 貴之
  • 出版社/メーカー: 翔泳社
  • メディア: 単行本(ソフトカバー)

◎質問者からの返答

ご回答ありがとうございます。


4 ● HALSPECIAL
●22ポイント

未確認ですが、これでどうでしょう


INSERT INTO YAHUOKU_HASSOU (
 KANRI_NO
 ,TITLE
 ,HASSOU_HOUHOU
 ,YAHOO_ID
 ,PRODUCT_ID
) 
SELECT 
 YAHUOKU_KANRI.KANRI_NO
 ,YAHUOKU_KANRI.B3
 ,YAHUOKU_KANRI.M7
 ,YAHUOKU_KANRI.M2
 ,YAHUOKU_KANRI.B6
FROM YAHUOKU_KANRI
WHERE YAHUOKU_KANRI.JOUTAI='発送リスト';

◎質問者からの返答

ご回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ