phpとMySQLを利用してエクセルのオートフィルタ機能を
実現させてWeb上で閲覧できるようにさせたいと考えています。
不躾ではありますがもう少しで完成できそうなのでどなたか
力を貸して下さい。よろしくお願いします。
以下に状況を記します。
自分でできた事
MySQLでのテーブルの作成とCSVデータのインポート
phpに記述するhtmlタグによるフォーム作成
わからない事
(おそらくphpの配列などを使うと思われる)
抽出フォームで選択した項目のphp内のSQL文への受け渡し
抽出結果のphpへの返し方
なお全文検索ではなくあくまで複数フィールドからの"抽出"にこだわっているせいで
良いサンプルがみつかりません。
参考ページなどお心当たりの方、いらっしゃいましたらURLだけでも教えて下さい。
No.2ベストアンサー
- 回答日時:
>抽出フォームで選択した項目のphp内のSQ L文への受け渡し
form method="post" だとして postデータを$_POST['komokumei']で取得するところはよいのですよね
phpからmysqlへの接続もできていますか?No1の方の紹介サイトをご参考ください。
それで、どういった条件文が書きたいのでしょうか?
まずは、mysqlのドキュメントを十分読みましょう。
http://dev.mysql.com/doc/
ここで日本語ドキュメントもダウンロード出来ます。
>なお全文検索ではなくあくまで複数フィールド からの"抽出"にこだわっているせいで
全文検索の意味がつかみにくいのですが、複数フィールドに条件設定したいのでしょうか?
tableのフィールド1を $_POST['komokumei1']
フィールド1で一致させたい文字列を $_POST['komoku1']
tableのフィールド2を $_POST['komokumei2']
フィールド2で文字列を含むものを検索したい $_POST['komoku2']
$query = "select * from table where " .$_POST['komokumei1']. " = \"" .$_POST['komoku1'] . "\" AND " .$_POST['komokumei2']. " LIKE \"%" . $_POST['komoku2'] . "\"%";
検索文字列が日本語sjisの場合や検索文字列に「"'\」などを含む時の問題は、私の手にあまるので、実際に問題になるようなら、補足で質問してください
それとも、表示フィールドを制限したいのでしょうか?
$query = "select field1,field2 from table where " .$_POST['komokumei1']. " = \"" .$_POST['komoku1'] . "\"";
うまくいかなかったsql文と、抽出条件がどんなものなのかを補足すると
さらなる回答が付きやすくなるでしょう。
>抽出結果のphpへの返し方
考え方が逆のような気がします。
phpの方から結果を取りにいくと考えるとよいかと思います。
phpの mysql関数マニュアル
http://jp.php.net/manual/ja/ref.mysql.php
phpにて $queryのsql文で結果を受け取るには以下のようにするといいかと思います。
(半分は上記サイトからのコピー(^^;)
$result = mysql_query($query);
// HTMLに結果を出力する
print "<table border='1'>\n\t<tr>";
$cols = mysql_num_fields($result);
for($i=0; $i<$cols ; $i++){
print "\t\t<th>" . mysql_field_name($result, $i) . "</th>\n";
}
print "\t</tr>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
// while ($row = mysql_fetch_assoc($result)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
参考URL:http://jp.php.net/manual/ja/ref.mysql.php http://dev.mysql.com/doc/
この回答への補足
先ずはこんな見ず知らずの私の質問に快く回答して頂き
本当にありがとうございます。
職場の人間よりも的確かつ丁寧な回答に
見た瞬間は目から鱗でした。
自分でも毎日独学で進めていたのですが質問の内容に説明が
足りなかったことにも気付きました。すみませんでした。
hrm_mmmさんの推測どおり困っているのは
>$query = "select * from table where " .$_POST['komokumei1']. " = \"" .$_POST['komoku1'] . "\" AND " .$_POST['komokumei2']. " LIKE \"%" . $_POST['komoku2'] . "\"%";
の部分です。
自己分析では配列や変数と「"」「\」からむと混乱しているように思えます。
自分で改造したソースではおかしな動きをします。
よろしければご覧頂いた上でご指摘頂けますでしょうか。
お願い致します。
----form.html----------
<HTML>
<HEAD>
<TITLE>メンバー抽出</TITLE>
</HEAD>
<BODY>
<FONT SIZE=5 COLOR=GREEN>メンバー抽出</FONT>
<HR>
<FORM ACTION="form.php" METHOD="POST">
<P>
<INPUT TYPE="checkbox" NAME="keitai" VALUE="1">携帯アドレスの場合チェックする
<P>
<B>会費負担</B>
<SELECT NAME="futan">
<OPTION VALUE="100">全額負担</OPTION>
<OPTION VALUE="50">半額負担</OPTION>
<OPTION VALUE="0">無料</OPTION>
</SELECT>
<P>
<INPUT TYPE="submit" VALUE="抽出">
<INPUT TYPE="reset" VALUE="クリア">
</FORM>
</BODY>
</HTML>
----form.php-----------
<?php
//フォーム送信内容を取得
$keitai = $_POST['keitai'];
$futan = $_POST['futan'];
//MySQLに接続
if( ! $conn = mysql_connect( 'localhost', 'card', 'UQbVGauchEoQ') ){
die( 'MySQL接続失敗' );
}
//データベースの選択
mysql_select_db( 'card', $conn );
//ヘッダ出力をします
header('Content-Type: text/html; charset=euc-jp');
?>
<HTML>
<HEAD>
<TITLE>mysql関数テスト1</TITLE>
</HEAD>
<BODY>
<?php
//SQL発行 ここで
$sql =
$rs = mysql_query( "select * from member where futan = ${futan} && keitai = $keitai ", $conn );
//<TABLE>ヘッダ
echo "<table border=1>";
echo "<tr><th>email</th><th>keitai</th><th>name</th><th>futan</th></tr>";
//1件ずつ取り出すループ
while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC ) ){
echo "<tr>";
echo "<td>" . $rec['email'] . "</td>";
echo "<td>" . $rec['keitai'] . "</td>";
echo "<td>" . $rec['name'] . "</td>";
echo "<td>" . $rec['futan'] . "</td>";
echo "</tr>";
}
//<TABLE>フッタ
echo "</table>";
//結果セットの解放
//mysql_free_result( $rs );
//切断
mysql_close($conn);
?>
</BODY>
</HTML>
No.1
- 回答日時:
こんにちは。
私も初心者ですので、まだまだ人に教えられる程できませんが、ここのサイトなんかはどうでしょうか???
参考URL:http://www.stackasterisk.jp/tech/php/php03_03.jsp
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL 私の考えていることは ・mySQL ・PHP ・web制作 この三つのスキルがあれば実現しますか? 4 2023/08/19 02:48
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysql_queryでのdelimiterの設...
-
接続ができません
-
INT型は金額の型に使用するべき...
-
Float型の時の計算結果がおかしい
-
「mysqld dead but subsys lock...
-
DB内の日本語データがPHPで取得...
-
副問合せにLIKE文を使う方法は...
-
MySQLの日本語LIKE検索について
-
ODP.NETのバージョン確認
-
php・Mysql Like文で日本語が使...
-
like句を使って日本語を検索す...
-
RPMのmysqlとmysql-serverの違い
-
プライマリーキーの昇順でソー...
-
誤って全てのユーザを削除して...
-
ユーティリティーとは?OPatch...
-
postgresQL に格納した画像ファ...
-
ODBC接続で全角文字が文字化け
-
SQLで日本語データを入力したい...
-
MySQLに外部PCから接続できない
-
SQLのVARCHARとVARCHAR2の違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MeCabの結果をWindows+PHPで取...
-
PHPからmySQLへINSERT文の実行
-
mysql_queryでのdelimiterの設...
-
Linuxで、Pearコマンドが使えな...
-
mysqlでphpinfoと実際のバージ...
-
LOAD DATA LOCAL INFILE
-
下記プログラムの問題点は? ...
-
「addslashes」と「htmlspecial...
-
sqlite_escape_stringのアンエ...
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
ODP.NETのバージョン確認
-
旧filemakerで和暦(令和など)...
-
ERROR 1045 (28000) (using pas...
-
副問合せにLIKE文を使う方法は...
-
INT型は金額の型に使用するべき...
-
like句を使って日本語を検索す...
-
postgreSQLのデータ型
-
RPMのmysqlとmysql-serverの違い
-
プライマリーキーの昇順でソー...
おすすめ情報