質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2866閲覧

PHPでMySQLから選択項目のみ取り出したい

mo102u

総合スコア17

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/01/29 02:06

編集2016/01/29 02:07

初歩的な質問で大変恐れ入ります。

現在PHPでMySQLからチェックボックスで選択したカラムのデータのみを選択する方法を考えているのですが、行き詰まってしまったため、ご教示いただきたく思います。

php

1$sql = "SELECT $column FROM テーブル名";

この**$column**にチェックボックスで選択した項目を入れて、
SQLを作成したいと考えていました。

例えば、カラムA、B、Cが存在し、

HTML

1<form action="" method="post"> 2 <input type="checkbox" name="check[]" value="A">A<br> 3 <input type="checkbox" name="check[]" value="B">B<br> 4 <input type="checkbox" name="check[]" value="C">C<br> 5 <input type="submit" value="選択"> 6</form>

のようなチェックボックスから、この中のAとBのみを選択した場合、
上記変数**$column**にAとBを入力したいと考えており、下記のような形にできればと思っておりました。

PHP

1$column = "A, B";

しかし$_POST['check']の配列内のvalueのみを変数**$column**に格納する方法がわからず、
行き詰まってしまいました。

変数**$column**に$_POST['check']のvalueのみを文字列で格納する方法をお教えいただけませんでしょうか。

最終的な目的として、MySQLからチェックボックスの選択項目のみ取り出したいので、
上記以外で適切な方法もよろしければお教えいただけますと嬉しく思います。

皆さまのお力添えをいただけませんでしょうか。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

$column = implode(',', $_POST['check']); とか?

PHP: implode - Manual
http://php.net/manual/ja/function.implode.php

なお、$_POST['check']に含まれるvalueが、サーバーから提示された項目を適切に含むかどうかを検証する処理を加えるのを忘れないで下さいね。

【追記】

php

1$valid_comun_array = array('col1', 'col2', 'col3'); 2$ok = true; 3foreach ($_POST['check'] as $val) : 4 if (!array_key_exists($val, $valid_comun_array)) : 5 $ok = false; 6 break; 7 endif; 8endforeach; 9if ($ok != true) : 10 // テーブルのカラムに含まれないものがあった 11endif;

なんてしておくと、含まれているかどうかの検証は可能。
もっと効率良く書く方法もありそうですが、とりあえず。

投稿2016/01/29 02:30

編集2016/01/29 05:57
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mo102u

2016/01/29 05:43

ご回答ありがとうございます。 こちらの内容で試してみます! >$_POST['check']に含まれるvalueが、サーバーから提示された項目を適切に含むかどうかを検証する処理 ただ、こちらの内容がわからず、恐れいりますがご教示いただけませんでしょうか。 よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2016/01/29 05:57

追記しました。
piyoon

2016/02/10 19:52

$_POST['check']に含まれているvalueが必ずしもA,B,Cのいずれかだけが入っているとは限らないということですね。 存在しない値が送られてきてエラーが出たり、見られたくないカラムの内容を見られたりしないような対処が必要になります。
piyoon

2016/02/10 19:54

あ、すみません、追記されていました。 余計なコメント失礼しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問