Windows2000Server Apache2を構築しています。
PHP MySql において以下のようにユーザーに予算入力させたいのですが、
データベース名をdbyosanとした場合どのように書けばいいでしょうか?
基本的動作は入力、更新、削除です。
一度ユーザーがデータを入力していればデータを表示させるようにしたいです。
ユーザー側の画面イメージ
***************予算入力画面*****************
1日予算【 】千円
2日予算【 】千円
3日予算【 】千円
~
29日予算【 】千円
30日予算【 】千円
31日予算【 】千円
*********************************************
■DB更新 DB削除
*********************************************
(ポイント不要)
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;
こんなのをベースに考えてみるのも良いかもしれません。
削除の仕様がわかりませんが、データの全削除であると想定して作成してみました。
また、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です。質問の仕方に至らない点ありますが、コメント欄にて質問させていただきます。これから自分なりに検証にはいります。明日以降の質問になるかと思いますが、宜しくおねがい致します。このような質問にありがとうございます。
聞き方をご教授頂きありがとうございます。参考にいたします。