スレッド表示 | フラット表示〕 全トピック 920 件中 778 番目 次≫ ≪前

DBのレコードをセレクトメニューに

created: 2003-10-23 17:35 | modified: 2003-10-24 13:57 | reply: 5

[798] DBのレコードをセレクトメニューに

user: かずへい | created: 2003-10-23 17:35
初歩的な質問で申し訳ありません。
データーベース(postgres)のテーブルから、レコードIDを抽出して,
HTMLのselectメニューに表示して、表示されたレコードIDをテーブルから削除したいのですが
どのようにしたら良いのでしょう?テーブルは以下の様になっています。

otenki
tenki_id | tenki|date
?????????????
001 |晴れ |10-23
002 |晴れ |10-24
003 |曇り |10-25

例えば、セレクトメニューから、002を選択して削除ボタンを押して
そのレコードを削除したいのですが、宜しく御教授お願い致します。
reply: 801 返信 編集 削除

[801] わからないのは何?

user: ゆうじ | created: 2003-10-23 19:17
こんばんは。

> どのようにしたら良いのでしょう?

さて、どうしましょう。
漠然としてるので何を答えてよいのやら・・。
管理人も素人ですのでおてやわらかにお願いします。

いろんな要素が絡んでますので、
まずはわからないことをしぼりましょう。

1.プログラム全体の流れ。
2.postgres関連関数の使い方。
3.テーブルからレコードを獲得するSQL文。
4.獲得したレコードをPHPで利用する方法。
5.レコードを削除するSQL文。
6.PHPスクリプト間での値の受け渡し方法。
Parent: 798  reply: 802 返信 編集 削除

[802] Re.わからないのは何?

user: かずへい | created: 2003-10-23 21:04
ゆうじさんこんばんは。

> 管理人も素人ですのでおてやわらかにお願いします。
質問からなってなくてで申し訳ありません。

> いろんな要素が絡んでますので、
> まずはわからないことをしぼりましょう。

> 1.プログラム全体の流れ。
これは多分、phpの中でsql文を発行してレコードIDを抽出して配列に入れ、これをselectフォームの中に入れ、任意のレコードIDを選択できる様にした後、選択したレコードをDBのレコードから削除する。と云う様にしたいのですが...
> 2.postgres関連関数の使い方。
これは、なんとか...
> 3.テーブルからレコードを獲得するSQL文。
獲得したレコードを、配列に入れると思うのですが、どうしたらいいものやら....
> 4.獲得したレコードをPHPで利用する方法。
ここが、一番判りません。3.の様に配列に入れこれを展開して<select></select>の中に
どうやっていれたらいいのか、教えて下さい
> 5.レコードを削除するSQL文。
これは、なんとかなりそうです。
> 6.PHPスクリプト間での値の受け渡し方法。
これも、大丈夫だと思うのですが..あんまり自信がありません。
質問に、不備があったこと、お詫び致します。
どうか、宜しくお願いします。
Parent: 801  reply: 803 返信 編集 削除

[803] サンプル

user: ゆうじ | created: 2003-10-24 00:21
ポイントは3と4のようですので、
部分的にサンプルを挙げようと思ったら、
結局、前半部分を書ききってしまいました。

postgres を使ったことがありませんので、
PHPマニュアルを参考に書きましたが間違ってるかもしれません。
さらに環境もありませんので未テストです。

Exp. select.php
<?php
// 削除ID選択フォーム --- select.php ---

// 1.データベースに接続・SQL文発行
$db = pg_connect("dbname=MyDB");
$sql = "select tenki_id, tenki, date from otenki";
$result = pg_query($db, $sql);

// 2.結果を獲得・表示
$rows = pg_num_rows($result); // 行数獲得
$id = array(); // ID保存用変数を初期化

// HTMLのヘッダ表示
echo "<html>\n<head><title>レコード削除</title></head>\n<body>\n";

// テーブル表示
echo "<table>\n<tr><th>ID</th><th>天気</th><th>月-日</th></tr>\n";
for ($i = 0; $i < $rows; $i++) {
$rec = pg_fetch_row($result, $i); // 1レコード獲得
$id[] = $rec[0]; // IDを保存
// 1レコード表示
echo "<tr><td>".$rec[0]."</td><td>".$rec[1]."</td><td>".$rec[2]."</td></tr>\n";
}
echo "</table>\n";

// 3.ID選択フォーム表示
echo "<p>削除するレコードのIDを選択してください。</p>\n";
echo "<form method=\"post\" action=\"delet.php\">\n<select name=\"id\">\n";
foreach($id as $value)
echo "<option value=\"".$value."\">".$value."</option>\n";
echo "</select>\n<input type=\"submit\" value=\"選択\">\n</form>\n";

// 4.データベース開放
pg_close($db);
?>

このあとは、delet.php 側で、
受け取った $_POST["id"] を元に、
レコード削除を行なえばよいと思います。

上記サンプルは
エラー処理を省いていますので実質使いものになりませんが、
何をどのように処理をすればよいか見えてくるのでは。

# この手のものなら、ネット上にサンプルがたくさんあると思います。
# 他人が書いたコードをじっくり解析してみるのも勉強になります。
# がんばってみてください。

訂正:
echo "<tr><td>".$rec[0]."</td><td>".$rec[1]."</td><td>".$rec[2]."</td></tr>\n";
この行、</td>が</tr>になってました。
間違ってたので訂正してあります。
Parent: 802  reply: 805 返信 編集 削除

[805] ありがとうございます&804削除してください

user: かずへい | created: 2003-10-24 00:49
ゆうじさん、今晩は。
お手数かけまして、ありがとうございます。
早速、よく読んで頑張ります。
出来上がったら、お知らせしたいと思います。
今晩は、このへんで失礼します。
ps.804が二重投稿になってしまいました。
 見苦しいので削除してください。
 宜しくお願い致します。
Parent: 803  reply: 811 返信 編集 削除

[811] 解決しました

user: かずへい | created: 2003-10-24 13:57
ゆうしさん、ありがとうございました。
ものの見事に動きました。
これから頑張って、削除できるように考えます。
ありがとうございました。
ps.参考書等を見ると、殆どがクラス等にまとめてしまっているので、私の様な初心者には、とっても敷居が高いと思います。
折角いいアイディアを思いついてもこのような処で挫折する方も多いと思います。
私も、お教え頂いたようなものをTipsとして整理できるように頑張ります。ありがとうございました。
Parent: 805  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 778 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑