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


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

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

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

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

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

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

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

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

回答の条件
  • 1人2回まで
  • 登録:2009/07/28 16:37:46
  • 終了:2009/07/28 19:55:52

ベストアンサー

id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012009/07/28 17:13:17

ポイント100pt

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桁の数字やアルファベットを用いるほうが少し早く処理できます。

id:aiomock

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

とても勉強になります。

2009/07/28 19:28:49

その他の回答(3件)

id:JULY No.1

JULY回答回数966ベストアンサー獲得回数2472009/07/28 16:56:16

ポイント23pt

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

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

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

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

id:aiomock

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

2009/07/28 18:56:41
id:kn1967 No.2

kn1967回答回数2915ベストアンサー獲得回数3012009/07/28 17:13:17ここでベストアンサー

ポイント100pt

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桁の数字やアルファベットを用いるほうが少し早く処理できます。

id:aiomock

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

とても勉強になります。

2009/07/28 19:28:49
id:kn1967a No.3

kn1967a回答回数356ベストアンサー獲得回数72009/07/28 17:41:14

ポイント22pt

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

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


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

まずはこの本を読め。

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

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

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

id:aiomock

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

2009/07/28 18:56:47
id:HALSPECIAL No.4

HALSPECIAL回答回数407ベストアンサー獲得回数862009/07/28 17:46:14

ポイント22pt

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


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='発送リスト';

id:aiomock

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

2009/07/28 18:56:49
  • id:aiomock
    以下スクリプトになります。
    PWはダミーになります。
    http://oskuni7.sakura.ne.jp/B_auction_system/rakusatugo_hassou.php
  • id:aiomock
    URLにあるページのチェックボックスにチェックを入れて発送済みのボタンを押した後の処理に以下のSQL命令が行われます。

    SQLデータ上にはAUCTION_KANRIとAUCTION_HASSOUの二つのテーブルがあり

    AUCTION_KANRIのテーブルでチェックボックスでチェックした管理番号が同じものをUPDATE命令で’発送リスト登録’という状態設定をします(パラメータを持たせる列がありそこを’発送リスト登録’にしています。。)。

    その後 AUCTION_KANRI にある ’発送リスト登録’状態になっているデータから指定したいくつかのデータをAUCTION_HASSOUのテーブルにINSERT命令文として埋め込みたいのですがここの命令文がわからず困っております。
  • id:aiomock
    以下私が作成したINSERT命令文です。


    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='発送リスト';");



    AUCTION_KANRIのテーブルに’発送リスト登録’になっているものはいくつかあり、それを全部INSERT文でAUCTION_KANRIからAUCTION_HASSOUのテーブルにデータの引越しをしたいと考えています。

    お手数をおかけしますがわかるかたおりましたらよろしくお願いします。
  • id:pahoo
    > aiomock さんへ
    先日、ポイント付メッセージを送信しましたが音沙汰が無く、最近、質問内容の確認のためにコメントを付けた質問を何の前触れもなくキャンセルされたことが二度ありました。
    このような状況なので、回答すべきかどうか躊躇しております。
    何かコメントがありましたらお願いします。
  • id:idetky
    なんで、前回の質問でコメントに書き込んだ注意点をまったく無視した質問を再び再開するのか、
    まったく分かりません。
  • id:aiomock
    pahoo さん
    idetky さん

    大変申し訳ありません。

    こちらコメントを書いた後、質問が終了したので質問終了のボタンを押し終了してしまいました。

    質問終了の処理をしても何らかの形で質問は残るであろうと考え終了しました。

    申し訳ありません。

    pahoo さんには毎回質問に回答していただき大変感謝しております。
    ポイント付きメールは今まで使ったことがなくよくわかりませんでした。
    確認させていただきます。

    また 先ほどは idetky さんの回答があったおかげで問題が解決し本当に感謝しています。

    次回から気をつけさせていただきます。
  • id:idetky
    ああ、なるほど。そんなに深い意味はなかったんですね^^;
    ご丁寧にありがとうございます。

    無事解決できると良いですね!
  • id:aiomock
    皆さんのおかげでシステムが完成しました。

    本当にありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません