現在ToDoリストを作成しており、最終的に実現させたい動作はタイトルのとおりですが、数点分からないことがありますので質問させてください。
したい事
1、htmlで「No」「タイトル」「内容」「期限」「優先度」と「登録」ボタンで入力するフォームを設置。
2、入力フォームからMySQLのデータベースに登録。
3、「登録確認」画面を表示。
4、「全て」というページに全予定を表示させ、各行頭「済」フィールドにチェックボックスと「完了済」ボタンを1つ配置。
5、完了した項目のチェックボックスにチェックを入れてボタンを押すと、「全て」というページ内で非表示にする。
以上のことをしたいと考えております。
現在、4つ目まではできました。
そこでお詳しい方にお聞きしたいことが以下です。
質問
A、チェックボックスにチェックが入って「いる」「いない」はPHPおよびMySQLはどう判断するのでしょう?
B、データベースの「済」フィールドではデータ型は何がふさわしいのでしょうか?(※今はverchar(1)としています)
C、「完了済みの項目にチェックを入れ、それを非表示にする」という動作はUPDATE文とSELECT文でいいのでしょうか?
疑問点はまだいくつかございますが、この3つが分かれば、あとは入門サイトなどネット上での解説も理解できそうな気がするのです。
以下にコードを貼りますので、おかしな点や修正すべき箇所がございましたらご指摘ください。
また、回答に必要な情報がございましたらすぐに返答させていただきます。
そもそもPHPやMySQLの基礎の理解に欠けているというご指摘もございましょうが、何卒よろしくお願いいたします。
<html>
<head>
<title>ToDoリスト</title>
</head>
<body>
<?php
echo("No");
?>
<br>
<?php
echo(htmlspecialchars($_REQUEST["No"]));
?>
<br><br>
<?php
echo("タイトル");
?>
<br>
<?php
echo(htmlspecialchars($_REQUEST["タイトル"]));
?>
<br><br>
<?php
echo("期限");
?>
<br>
<?php
echo(htmlspecialchars($_REQUEST["期限"]));
?>
<br><br>
<?php
echo("優先度");
?>
<br>
<?php
echo(htmlspecialchars($_REQUEST["優先度"]));
?>
<br><br>
<?php
echo("内容");
?>
<br>
<?php
echo(htmlspecialchars($_REQUEST["内容"]));
?>
<br><br>
<?php
if( isset($_REQUEST["済"]) != "" )
{
$conn = mysql_connect( "localhost", "root", "○○○" );
if( $conn == false )
{
die("MySQL 接続エラー");
}
mysql_set_charset( "sjis" );
mysql_select_db( "todo" );
$sql = " UPDATE todo SET 済="※ここにどんな値を入れたらよいか分かりません。" ;
$sql = $sql . " VALUES( ";
$sql = $sql . "'" . $_REQUEST["済"] ."' , ";
$sql = $sql . "'" . $_REQUEST["No"] ."' , ";
$sql = $sql . "'" . $_REQUEST["タイトル"] ."' , ";
$sql = $sql . "'" . $_REQUEST["期限"] ."' , ";
$sql = $sql . "'" . $_REQUEST["優先度"] ."' , ";
$sql = $sql . "'" . $_REQUEST["内容"] ."' ) ";
$todo_list = mysql_query( $sql );
if( $todo_list == false )
{
echo("エラーが発生しました。");
}
else
{
echo("正常に更新されました。");
}
mysql_close();
}
?>
<br><br>
<a href="http://localhost/continuity_is_power01/continuit …
<input type="submit" value="戻る">
</a>
</body>
</html>
No.1ベストアンサー
- 回答日時:
どういうform要素になっているか書かれていないので、詳細には言及できませんが(汗
>A、チェックボックスにチェックが入って「いる」「いない」はPHPおよびMySQLはどう判断するのでしょう?
phpではPOSTされた内容(つまりチェックボックスのname属性とその値)で確認して、update文を発行します。
>B、データベースの「済」フィールドではデータ型は何がふさわしいのでしょうか?(※今はverchar(1)としています)
お好みで。真偽値でもいいですが拡張性がないので、integerかcharでしょうね。個人的にはcharですかね(varcharはあまり使わないです)。。
>C、「完了済みの項目にチェックを入れ、それを非表示にする」という動作はUPDATE文とSELECT文でいいのでしょうか?
「完了済みの項目にチェックを入れ」はユーザーの行為ですね。phpは(前述のとおり)POSTされた内容に従ってupdate文を発行するだけです。あとは表示のためのselectにwhereを追加です(これはわkりますよね)。
(蛇足)
完了済みの項目を「すべて」で非表示という仕様は珍しいですね。普通は「未完了分」というケースでselect文にwhereを追加します(「すべて」は完了分も含ませることが多い)。
なお、update文は「update テーブル名 set 列名=値(, 列名=値・・・)」だけで完結です。insert文と違ってvaluesなどはありません(セットしない列の値は変わらない)。当然ですが、whereがないとダメですのでご注意ください(全部のレコードを更新するなら別ですが、今回は違いますよね)。
http://dev.mysql.com/doc/refman/4.1/ja/update.html
丁寧で分かりやすいご説明ありがとうございます。
参考になりました。
select文のwhereは分かります。
>完了済みの項目を「すべて」で非表示という仕様は珍しいですね。
私の目線に固執していました。「『未完了』の項目だけ表示させたい」と同義です。
指摘されて気づきました。お恥ずかしいです(汗)
>当然ですが、whereがないとダメですのでご注意ください(全部のレコードを更新するなら別ですが、今回は違いますよね)。
そうですね。全て完了なんてそうあることではないですし(^-^)
どうもありがとうございました。感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP php ログイン 1 2022/11/01 00:24
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Pro*Cの構文エラー
-
VB.NET エラーになる箇...
-
Q&Aサイトを作成していてURLの...
-
PHP&MySQLでの文字列+数列の一...
-
ResultSetインターフェイスでの...
-
CakePHPとMySqlを使用していま...
-
PHPでMySQLのテーブルからcount...
-
データベースに存在するデータ...
-
insert1つの処理でもトランザ...
-
<VB.NET>INSERT文でDBにデータ...
-
実行時エラー3131 FROM 句の構...
-
エクセルVBAについて
-
VBAをつかってクエリの情報を抽...
-
php データ削除
-
円マークが付加されて保存され...
-
MySQLでデータベースにデータin...
-
DBで検索結果に該当するデータ...
-
テキストボックスに入れた内容...
-
テーブルに入っているデータと...
-
Resource id #3 をフィールドの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
Q&Aサイトを作成していてURLの...
-
<VB.NET>INSERT文でDBにデータ...
-
insert1つの処理でもトランザ...
-
Pro*Cの構文エラー
-
ResultSetインターフェイスでの...
-
データベースに存在するデータ...
-
PHP&MySQLでの文字列+数列の一...
-
VBA ACCESS SQL...
-
phpで複数の検索語を検索対象に...
-
like検索の複数キーワードで、...
-
MySQLのINSERT時にたまに重複に...
-
C# で発生したException.Messag...
-
PHP+PDO+MYSQL で実行されたSQ...
-
PHPのUndefined index や varia...
-
INSERT,DELETEを同時に
-
配列をループさせてUPDATE
-
VB.NET エラーになる箇...
-
php postgres Insert と updat...
-
C#でDBの特定列をUpdate
おすすめ情報