人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

丸投げ的なお願いですので満足回答には1000ポイント差し上げます。


Windows2000Server Apache2を構築しています。

PHP MySql において以下のようにユーザーに予算入力させたいのですが、
データベース名をdbyosanとした場合どのように書けばいいでしょうか?
基本的動作は入力、更新、削除です。
一度ユーザーがデータを入力していればデータを表示させるようにしたいです。


ユーザー側の画面イメージ
***************予算入力画面*****************

1日予算【 】千円
2日予算【 】千円
3日予算【 】千円
?
29日予算【 】千円
30日予算【 】千円
31日予算【 】千円
*********************************************
■DB更新 DB削除
*********************************************


●質問者: saiden
●カテゴリ:インターネット ウェブ制作
✍キーワード:MySQL PHP Windows2000 イメージ データ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● toyoshi
●24ポイント

(ポイント不要)

DBのスキーマから、PHPのコードまでここに書くのはスペース的に不可能です。

またどんなものかもっと具体的に書く必要があります。

まずここは

1、どんなものを作りたいのか

2、どんなデータベース(テーブルが必要なのか)

3、どんなスクリプトが必要なのか

と3つに分けて質問をしなおされることをお勧めします。

ただし3は非常に長くなるので難しいので、さらに細かく質問をしなくてはならないと思います。


とりあえず、テーブルだったら

CREATE TABLE `yosan` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`user_id` INT NOT NULL ,

`yosan` INT NOT NULL ,

`date` DATE NOT NULL ,

`modified` DATETIME NOT NULL ,

`created` DATETIME NOT NULL

) ENGINE = MYISAM CHARACTER SET sjis COLLATE sjis_japanese_ci;

こんなのをベースに考えてみるのも良いかもしれません。

http://dummy/

◎質問者からの返答

聞き方をご教授頂きありがとうございます。参考にいたします。


2 ● hayashi6
●24ポイント

どう書くという問題ではなく、phpでソフトをつくらなければならないのです。

http://www.google.com/


3 ● Mook
●1000ポイント

削除の仕様がわかりませんが、データの全削除であると想定して作成してみました。


また、yosan テーブルが

項目名 データ型
day integer
price integer

であることを想定しています。


<html>
<head>
<?php
// データベース情報
 define( "db_Server", "localhost" );
 define( "db_User", "foo" );
 define( "db_Password", "bar" );
 define( "db_Name", "dbyosan" );
 define( "db_TableName", "yosan" );

// データベース接続
 $conn = mysql_connect( db_Server, db_User, db_Password ) or die("接続エラー");
 mysql_select_db( db_Name );

// 更新ボタンが押された
 if ( isset( $_POST["update"] ) )
 {
 deleteData( $conn );
 updateData( $conn );
 }

// 削除ボタンが押された
 if ( isset( $_POST["delete"] ) )
 {
 deleteData( $conn );
 }

 $sql = "SELECT * from ".db_TableName.";";
 $res = mysql_query( $sql, $conn );
 while ( $row = mysql_fetch_array( $res, MYSQL_ASSOC ) )
 $priceArray[$row["day"]] = $row["price"];

// 更新処理
function updateData( $conn ) {
 for( $i=1 ; $i<=31 ; $i++ ) {
 if ( strlen( $_POST["yd".$i] ) > 0 ) {
 $sql = "INSERT INTO ".db_TableName." ( day, price ) VALUE (".$i.",". $_POST["yd".$i].");";
 $res = mysql_query( $sql, $conn );
 }
 }
}

// 削除処理:全データクリア
function deleteData( $conn ) {
 $sql = "DELETE from ".db_TableName.";";
 $res = mysql_query( $sql, $conn );
}

// テーブル表示
function yosan_table()
{
 global $priceArray;
 print <<<_EOT
 <table border="1">
 <tr>
 <th>日付</th>
 <th>予算</th>
 </tr>
_EOT;
 for( $i=1 ; $i<=31 ; $i++ ) {
 print " <tr><td>".$i.'日予算</td><td><input type="text" style="text-align:right" name="yd'.$i.'"';
 if ( isset( $priceArray[$i] ) )
 print ' value="'. $priceArray[$i].'"';
 print ">千円</td></tr>\n";
 }
 print "</table>\n";
}
?>
</head>
<body>
 <form name="yosan" method="POST">
 <?php yosan_table(); ?>
 <input type="submit" name="update" value="更新">
 <input type="submit" name="delete" value="削除">
 </form>
</body>
</html>

MySQL に必要な情報は先頭部分で定義していますので、適宜変更して試してみてください。


不明な点はコメントで対応しますので、何かあればコメントを有効にお願いします。

http://www.atmarkit.co.jp/flinux/rensai/mysql05/mysql05a.html

◎質問者からの返答

取り急ぎご連絡です。回答ありがとうございます。全データ削除でOKです。質問の仕方に至らない点ありますが、コメント欄にて質問させていただきます。これから自分なりに検証にはいります。明日以降の質問になるかと思いますが、宜しくおねがい致します。このような質問にありがとうございます。


4 ● minkpa
●22ポイント

http://my.formman.com/

こういったサイトを利用してみてはいかがでしょうか。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ