
いつもお世話になっております。
度々ですが躓きましたので皆様の知恵をお借りしたいと思います。
どうぞ宜しくお願い致します。
題名にもある通り、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で質問しましょう!
似たような質問が見つかりました
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
このQ&Aを見た人はこんなQ&Aも見ています
-
JSPで<SELECT>の中にDBから持ってきたデータを反映させたい
Java
-
プルダウンで選択すると、DBの値を取得したい
JavaScript
-
dbに登録したデータをphpのプルダウンに表したい
PHP
-
-
4
連動させたいセレクトボックスについて。
PHP
-
5
リクエストに応じたselectedの初期値設定方法
Java
-
6
MySQL のデータからドロップダウンリストを作りたい
MySQL
-
7
JSPでのリストボックス表示
Java
-
8
SQLデータベースの処理
MySQL
-
9
【javascript・PHP】プルダウン選択後、表示する金額を瞬時に
JavaScript
-
10
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
11
レコード件数の表示
Java
-
12
javaでDBから取得したデータのJSP表示
Java
-
13
jsp~jspにhiddenを使って変数を飛ばしたい
JavaScript
-
14
連動プルダウンについてです。
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
listへのappendが出来ない件
-
$a[0]='w';$a[1]='r';を1回で
-
サイト名を取得するPHP
-
PHP5の外部コマンド実行で、バ...
-
phpとmysqlで「あいまい検索」...
-
String だと「 ByRef引数の型が...
-
SQL及びSMARTYの利用
-
C言語の配列をPush(追加)する...
-
C言語でCSVファイルの行数を読...
-
[Smarty] register_objectでの...
-
Mac トロイの木馬”Flashback"に...
-
forを使わずにforeach文のみで...
-
配列をループでたくさん宣言し...
-
フォームを通さずに2次元配列の...
-
3つの連想配列を交互に代入し...
-
CakePHPでテーブルからデータを...
-
自動で番号を振りたい
-
PHP データ 送受信
-
ランダム数値を連番と比べて足...
-
CArrayのソート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
日付から順にデータを並び替えたい
-
外部のテキストファイルを読み...
-
functionを定義したつもりが、...
-
再帰的な順列書き出し
-
xmlからphpで出力したデータを...
-
順位を付ける時のスコアの重複...
-
テキストボックスの日本語をロ...
-
PHP5の外部コマンド実行で、バ...
-
「ローマ字 -> ひらがな」へPHP...
-
if の中の 複数のor についてお...
-
phpでのソートについて
-
多次元配列等の AND 検索について
-
日付、時間の2段階でソート
-
javaでcall_user_func_array
-
配列をループでたくさん宣言し...
-
$_SESSIONに二次元配列を使える...
-
foreachのなかで次のキーを参照...
-
file_existsでファイル名の部分...
-
PHPにてクラスを配列にすること...
おすすめ情報