配列のキーとvalueをテーブルに書き込めますか
- 配列のキーとvalueをテーブルに書き込む方法を教えてください
- テーブルにキーとvalueを同時に書き込むことは可能でしょうか
- 初心者ですが、配列のキーとvalueをテーブルに書き込む方法を教えてください
- ベストアンサー
配列のキーとvalueをテーブルに書き込めますか
いつもお世話になっております。 下記方法で 配列のデータのみinsertすることができました。 foreach($b as $Key =>$Value){ $sql ="INSERT INTO temp_memo (stylecode) VALUES ('{$Value}')"; mysql_query($sql); } テーブルには key と stylecodeの二つのフィールドがあります。 上記の方法だと 下記 value のみのinsertです。 key stylecode 0 りんご 0 みかん 0 いちご key も同時に テーブルに書き込むことは 可能でしょうか。 いろいろ検索してみましたが 見つかりませんでした。 初心者です。 どうかよろしくお願いいたします。
- maki_peko
- お礼率33% (4/12)
- PHP
- 回答数3
- ありがとう数0
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
もし本当に「key」というカラム名を使っているのであれば 予約語なのでエラーになっている可能性はありますね >$sql ="INSERT INTO temp_memo (key, stylecode) VALUES ('{$Key}', '{$Value}')"; $sql ="INSERT INTO temp_memo (`key`, `stylecode`) VALUES ('{$Key}', '{$Value}')"; 的な処理が必要になると思います。 (ふつうは予約語をカラム名には使いませんが・・・)
その他の回答 (2)
- agunuz
- ベストアンサー率65% (288/438)
>返り値が空でしたとデータが入ってきませんでした。 とりあえず mysql_query($sql); は mysql_query($sql) or die(mysql_error()); としてください(最低でもデバッグ時はこうしておくこと)。 ちなみに、keyという列は文字列型ですか?数値型ですか?(数値型であれば引用符で括ってはいけません)。また文字列型(stylecodeはそうですよね)はエスケープしてください。 $sql = sprintf("INSERT INTO temp_memo (key, stylecode) VALUES (%d, '%s')", $Key, mysql_real_escape_string($Value)); それ以前にMySQL関数はすでに非推奨なので、今から書くコードで使うべきではないと思いますが・・・
補足
いつもアドバイス本当にありがとうございます。 デバック時および 非推奨の件 今から勉強します。 ネットと本とで ど素人が 見よう見まねでやっているもので お恥ずかしい限りです。 これからもどうぞよろしくお願いいたします。
- t_ohta
- ベストアンサー率38% (5078/13272)
$sql ="INSERT INTO temp_memo (key, stylecode) VALUES ('{$Key}', '{$Value}')";
補足
foreach($b as $Key =>$Value){ $sql ="INSERT INTO temp_memo (key, stylecode) VALUES ('{$Key}', '{$Value}')"; mysql_query($sql); } 早々のご回答ありがとうございます。 上記で試してみましたが 返り値が空でしたとデータが入ってきませんでした。 テーブルの作り方とかが おかしいのでしょうか。 すみません。よろしくお願いいたします。
関連するQ&A
- アクセスの2つのテーブルから重複しないものを抜き出す方法について
アクセスの2つのテーブルから重複しないものを抜き出す方法について 例えば テーブル Aには ID 価格 商品 1 200 りんご 2 150 みかん 3 180 りんご 4 230 いちご テーブル Bには 1 150 みかん 2 180 りんご とあった場合 A-B のクエリーを実行して 1 200 りんご 2 230 いちご という結果を得たいのですが、どのようにすれば出来るのでしょうか よろしくお願いします。
- ベストアンサー
- その他(データベース)
- チェックボックスで複数選択した値をSQLへ
次のような入力フォームから、SQLのテーブルに登録します。 <?php function connect() { return new PDO("mysql:dbname=★★★;host=★★★","★★★","★★★", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $pdo = connect(); if (@$_POST['submit']) { $hoge = $_POST['hoge']; if (!$error) { $pdo->query("INSERT INTO ★(hoge) VALUES('$hoge')"); header('Location: example.php'); exit(); } } ?> <form action="insert.php" method="post"> <input type="checkbox" name="hoge[]" value="りんご"/>りんご<br> <input type="checkbox" name="hoge[]" value="みかん" />みかん<br> <input type="checkbox" name="hoge[]" value="いちご" />いちご <input class="submit" type="submit" name="submit" value="登録"> </form> これで、例えば「りんご」と「みかん」をチェックして登録ボタンを押すと 受け取りのexample.phpにはArrayと表示され、SQLに反映されません。 よい方法があったら教えてください。
- ベストアンサー
- PHP
- DOSプロンプトから一度に登録させる方法
WindowsXPに Oracle10gの無料版が入っています。 テーブルは既に作成しているのですが、データをインポートさせたく SQLを列記してDOSプロンプトから一度に登録させたいのですが、どのようにコマンドすればよいのでしょうか? sqlplusでログイン create table yaoya ( namae varchar2 (100) shohin varchar2 (100) num number (8,2) ); でテーブル作成している。 test.sqlを以下のように作成しました。 insert into yaoya (namae, shohin, num) values ('田中', 'りんご', 10); insert into yaoya (namae, shohin, num) values ('田中', 'みかん', 8); insert into yaoya (namae, shohin, num) values ('田中', 'バナナ', 15); insert into yaoya (namae, shohin, num) values ('伊藤', '梨', 12); insert into yaoya (namae, shohin, num) values ('伊藤', 'イチゴ', 20); insert into yaoya (namae, shohin, num) values ('伊藤', 'メロン', 1); insert into yaoya (namae, shohin, num) values ('松田', 'スイカ', 3);
- ベストアンサー
- Oracle
- insert文等で「`」の有無で失敗するテーブルとしないテーブルがある。
XAMPP(winXP、PHP4)を使っています。 Aのテーブルでは $query= "insert into table (a,b,c,d) values('1','2','3','4')"; $result = mysql_query($query); でデータが追加されるのに、Bのテーブルでは失敗しました。 今日ずっと何が間違っているのかわからなかったのdですが、 $query= "insert into table (`a`,`b`,`c`,`d`) values('1','2','3','4')"; $result = mysql_query($query); とすると成功しました。 なぜAのテーブルでは「`」が無くても成功したのに、Bのテーブルでは必要なのでしょうか。 宜しくお願いします。
- ベストアンサー
- MySQL
- access テーブル結合の逆?
Access2003 お世話になります。SQLで以下のようなデータを取得する場合、上手い方法はあるのでしょうか。なんだかとても簡単な事のような気がするのですが…… テーブルA: ---品名--- りんご みかん もも いちご テーブルB: ---品名--- りんご もも このテーブルBに入力されているレコードをテーブルAから"除外"して、結果として「みかん」と「いちご」だけが欲しいのです。 テーブルBのレコードが少なければ、直接 品名<>"りんご" とか書いてもいいのかもしれませんが、結合のようなSQLで一発でできてしまったりしないでしょうか。 access上で可能なスマートな方法があれば教えていただきたいです。 よろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- 【JavaScript配列のソート】2つのキーで
JavaScriptのsort()を使用して次の並べ替えをしたいと思っています。 key1, key2, data, data 5/5 , 5/4 , リンゴ, 110 5/3 , 5/6 , バナナ, 130 5/7 , 5/2 , ミカン, 110 5/3 , 5/2 , イチゴ, 150 この配列をkey1を昇順でかつkey2も昇順とし並び変えたいのです。 key1, key2, data, data 5/3 , 5/2 , イチゴ, 150 5/3 , 5/6 , バナナ, 130 5/5 , 5/4 , リンゴ, 110 5/7 , 5/2 , ミカン, 110 str.sort(); これだとkey1のみでソートされてしまいますので、条件を複数指定したいのですがいい方法はないでしょうか? 結果はweb(テーブル等)に表示するのではなく、配列変数のままで獲得したいと思っています。 google apps のスプレッドシート内でスクリプトとして使用したいと思っています。 かなり調べたのですがどれも1項目(key1)のみの検索しかヒットしませんでした。 よろしくお願いします。
- ベストアンサー
- JavaScript
- 一つのテーブルの複数のフィールドから抜き出す方法について
一つのテーブルの複数のフィールドから抜き出す方法について 例えば下記のようなテーブルがあったとします。 1 2 3 4 A商店 りんご みかん バナナ B商店 みかん イチゴ くり パイナップル C商店 イチゴ パイナップル バナナ D商店 イチゴ バナナ りんご のようなテーブルがありフィールド1~4いずれかにみかんを含むクエリーを作成し次のような結果をACCESSで作成したいのですが、簡単な方法はあるのでしょうか? 1 2 3 4 A商店 りんご みかん バナナ B商店 みかん イチゴ くり パイナップル よろしくお願いいたします。 尚、使用しているデータベースはACCESS2000です。
- ベストアンサー
- その他(データベース)
- 配列の初歩2
PHP+MYSQLに挑戦しているプログラミング入門者です。、 昨日 http://oshiete1.goo.ne.jp/qa3720566.html に続き全く初歩的な質問で申し訳ございません。 知識が乏しいため本を読んでもわからず、 いろいろ試してもだめなため、再度質問させていただきます。 t1 +-+-+ |n|n2| +-+-+ |1|2| +-+-+ |3|4| $bat=array(5=>6,6=>7,7=>8); $sql = "insert into t1 values(5,number)"; なら |5|5| $sql = "insert into t1 values(5,'{$bat[5]}')"; なら |5|6| が追加されますが $sql = "insert into t1 values(5,'{$bat[number]}')"; だと |5|0| となってしまいます。これを |5|6| とするにはどうしたらよいのでしょうか 何卒よろしくお願いします。
- ベストアンサー
- PHP
- 閉包テーブルのノードの移行について
このジャンルでお願いします。 次のようなテーブルで CREATE TABLE IF NOT EXISTS item ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO item (name) VALUES ('item1'); INSERT INTO item (name) VALUES ('item2'); INSERT INTO item (name) VALUES ('item3'); INSERT INTO item (name) VALUES ('item4'); INSERT INTO item (name) VALUES ('item5'); INSERT INTO item (name) VALUES ('item6'); CREATE TABLE IF NOT EXISTS treepath ( ancestor_id int(11) NOT NULL, descendant_id int(11) NOT NULL, FOREIGN KEY (ancestor_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (descendant_id) REFERENCES item(id) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY(ancestor_id, descendant_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 1); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 2); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 3); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 4); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 5); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (1, 6); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (2, 2); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (2, 4); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (2, 5); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (2, 6); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (3, 3); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (4, 4); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (4, 6); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (5, 5); INSERT INTO treepath (ancestor_id, descendant_id) VALUES (6, 6); item1┬item2 │ ├item4 │ │ └item6 │ └item5 │ └item3 を item1┬item2 │ │ │ └item5 │ └item3 └item4 └item6 のようにitem4以下のノードをitem3の下に移したいのですが、 その場合のtreepathテーブルの更新はどのようなSQL文にすれば良いのでしょうか?
- ベストアンサー
- MySQL
- 片方のテーブルに存在しないレコードの抽出する方法
shop1テーブルに存在して、shop2テーブルに存在しないレコードを抽出させたいのですが、 どのようにSQLを書けば良いのでしょうか? よく知らないのですが、SQLでは結合?というジャンルの手法ですか? shop1テーブル nama num みかん 10 りんご 20 なし 30 いちご 50 shop2テーブル name num みかん 55 りんご 44 なし 33
- 締切済み
- SQL Server
補足
ありがとうございました。 うまくいきました。 見ようみまねで やっているもので 予約語をカラムにしておりました。 カラム名変更しました。 本当にありがとうございました。