
いつもお世話になっております。
度々ですが躓きましたので皆様の知恵をお借りしたいと思います。
どうぞ宜しくお願い致します。
題名にもある通り、HTMLのプルダウンメニューで選択する項目をDBから取得し、他のDBに登録させたいです。
以下、処理時のコードです。
$result = pg_query($con, "SELECT project FROM project_tbl");
$col = pg_fetch_array($result);
<SELECT NAME="project">
<OPTION VALUE="$col['project']">
</SELECT>
但し、このコードではDBの内容を取得する事が出来ませんでした。
問題点はこれ以外に
・DBに複数行のデータがある時、複数行を取得出来ない
・仮にプルダウンで選択させる事が出来たとしても、登録ボタンを押せば
選択した内容が消えてしまう
と考えています。
どれに対しても解決策が見出せないので、皆様のお力をお借りしたいと
考えています。 宜しくお願いします。
No.5ベストアンサー
- 回答日時:
#1です。
まず、記述が足りなかった行なのですが
<OPTION VALUE="<?php $data['project'] ?>">
は
<OPTION VALUE="<?php $data['project'] ?>"><?php echo $data['project'] ?></OPTION>
です。すみません。
失礼な事をお聞きしてすみませんが、
お使いのDBはPostgreSQLですよね?
PostgreSQLならpg_query・pg_fetch_array
MYSQLならmysqy_query・mysql_fetch_array
で同等の扱いでいけるのではと思ったのですが。。
私の持っている環境はMYSQLしかないのでそちらの環境では同じロジックで関数を
pg_query → mysqy_query
pg_fetch_array → mysql_fetch_array
に変えただけで正常に取得できました。
同じ使い方ではいけないのでしょうかね。。
お役に立てず、すみませんです。
gogo-tea様、ありがとうございます。
教えていただいたコードで処理を実現する事が出来ました。
しかし処理の内容を完全に理解しきれていないので、これから
ゆっくりコードをみて理解したいと思います。
度々のご返答・ご教授感謝しております。
No.4
- 回答日時:
#2, #3の者です。
たびたび申し訳ありません。#2で回答したスクリプトのかわりに、以下をお試しになってみてくださいますか?
pg_fetch_array()で、DBから取得した結果セットを$colという配列に
格納すると思いますので、pg_fetch_array()の呼び出しはforループの
外でないといけないはずです。
そして、forループの中で、配列$colの各要素をプルダウンメニューに登録しています。
<?php
$result = pg_query($con, "SELECT project FROM project_tbl");
$rows = pg_num_rows($result);
if ($rows > 0) {
print '<SELECT NAME="project">';
$col = pg_fetch_array($result);
for ($i = 0; $i < $rows; $i++) {
print '<OPTION VALUE="{$col[$i]}">{$col[$i]}</OPTION>';
}
print '</SELECT>';
}
?>
(注)インデントのため、全角空白を使っています。
miraiya様、度々のご返答ありがとうございます。
教えていただいたコードではどうも内容が表示されず
{$col[$i]}
が表示されてしまいました。
以下のコードで実装する事が出来ました。
<SELECT NAME="PROJECT">
<?php
$sql = "SELECT project FROM project_tbl ORDER BY project;";
$col = pg_query($con, $sql);;
while($data = pg_fetch_array($col)){
?>
<OPTION VALUE="<?php $data['project'] ?>"><?php echo $data['project'] ?></OPTION><?php
}
?>
</SELECT>
ご教授・参考になる意見を下さり、感謝しております。
No.3
- 回答日時:
#2の者です。
#2回答には明らかな誤りがありましたので、訂正しておきます。
> print '<OPTION VALUE="{$col[$i]}">{$col[$i]}</OPTIONS>';
この行の最後にある</OPTIONS>を、</OPTION>に訂正します。
他にも誤りがあるかもしれません。その折はお許しください。
No.2
- 回答日時:
もしかすると、こういうのでできるかもしれません。
<?php
$result = pg_query($con, "SELECT project FROM project_tbl");
$rows = pg_num_rows($result);
if ($rows > 0) {
print '<SELECT NAME="project">';
for ($i = 0; $i < $rows; $i++) {
$col = pg_fetch_array($result);
print '<OPTION VALUE="{$col[$i]}">{$col[$i]}</OPTIONS>';
}
print '</SELECT>';
}
?>
(注)インデントのため、全角空白を使っています。
No.1
- 回答日時:
pg_queryは使った事がないのですが多分こんな感じでしょうか
<SELECT NAME="project">
<?php
$sql = "select project from project_tbl order by project;";
$col = pg_query($con, $sql);;
while($data = pg_fetch_array($col)){
?>
<OPTION VALUE="<?php $data['project'] ?>">
<?php
}
?>
</SELECT>
登録ボタンでPOSTされたら$projectに選択された値が
入るかと思います。
同じ画面にもどるのであれば
上のループで
$data['project']が受け取った$_POST['project']と等しければ
selectedにしてあげればよいかと思います。
gogo-tea様、お返事ありがとうございました。
残念ながら教えていただいた上記コードでは
空白のみでDBの内容が表示されませんでした。
もう少し考えてみます。
参考になる意見ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
JSPで<SELECT>の中にDBから持ってきたデータを反映させたい
Java
-
プルダウンで選択すると、DBの値を取得したい
JavaScript
-
JSPでのリストボックス表示
Java
-
-
4
MySQL のデータからドロップダウンリストを作りたい
MySQL
-
5
SQLデータベースの処理
MySQL
-
6
連動プルダウンについてです。
JavaScript
-
7
dbに登録したデータをphpのプルダウンに表したい
PHP
-
8
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
9
JSPの処理の途中で、JavaScriptの処理をしたい
JavaScript
-
10
javaでDBから取得したデータのJSP表示
Java
-
11
レコード件数の表示
Java
-
12
PHPとpostgreSQL プルダウンの作成
PHP
-
13
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
14
リクエストに応じたselectedの初期値設定方法
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Zend_Form_Element_Hash
-
verilogで、配列の一部をタスク...
-
配列をループでたくさん宣言し...
-
PHPで、CSVファイルを、指定し...
-
smarty 同じ要素内で改行
-
POSTで渡されるデータの数がわ...
-
cakephpでのトランザクション処...
-
読み(あ行~わ行)ごとに分け...
-
Smartyのテンプレートからjavas...
-
String だと「 ByRef引数の型が...
-
PHP 配列の添字に変数は使えない?
-
複数行のデータのPOST処理に関して
-
連想配列から<th>を含むテーブ...
-
ネストが深い時のforeachはどう...
-
C言語の配列をPush(追加)する...
-
Smartyで多次元配列をスマート...
-
C言語でCSVファイルの行数を読...
-
配列の何番目かを出力したい
-
バイナリファイルの内容を、そ...
-
配列からプルダウン用のHTMLを生成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
空フィールドが表示されない
-
NGワード設定もしくはテキス...
-
PHPで ?seq= の後に続く数に応...
-
大切なPHP用語
-
HTTPのメッセージボディについ...
-
占いのPHPを作成中ですが・・・
-
XML_Serializerで複数のXMLの扱い
-
preg_replaceでの警告
-
多次元配列のカウント+1の仕方
-
二次元配列のソート方法がわか...
-
" "を省く方法を教えてください
-
phpとmysqlで「あいまい検索」...
-
PHP array関数の[ ]内の値の表示
-
usortで3つの項目を昇順・降順...
-
PEAR・MDB2のモジュールロード...
-
pg_insertで現在の時刻を挿入す...
-
functionを定義したつもりが、...
-
cakephp2.6でfindを使い合計値...
-
外部のテキストファイルを読み...
おすすめ情報