読了: 約 4 分
最近データベースを絡めてサービスを開発したいと考えていましたので、
少しずつサーバーサイドも勉強していきます。
目的
・フロントエンドだけでなく、サーバーサイド・データベースを絡めて、検索やユーザーのデータを保持するようなサイト
またはその様なサービスを作成するため。
特に、ログインや会員登録等の場合必須となるため、一から勉強し始めます。
参考とした書籍は下記です。
エンジニアの先輩からおすすめされてそのまま読み始めました。
インプレスジャパン
売り上げランキング: 60369
WordPressを触っていて多少PHPを使ったり、業務でsmartyを使ったりしているので
多少覚えてきてはいるものの実践では全然使えないのが痛いので、
初歩的な所から実際実装してみてどの位で出来るのかを実験してみました。
ToDoアプリの作成
書籍を参考にTodoアプリを作ってみました。
ただ、書籍をコピーするだけでは面白くないので、
タスクが終わったものと、終わってないものが一覧で同時に表示されていて、
終わってないものには左に【×】印が付いているサンプルだったのですが、
JavaScriptでタブ分けして『残タスク』と『終わったタスク』で
分けるようにしました。
SQL文の初歩
ほぼ全くわかりませんでしたが、初歩的なところからいきます。
下記はまず、TODOのデータを格納するitemテーブルを作成しています。
item = テーブル名
todo_id = カラム1の名前 カラム1のデータ型
というふうに記述していきます。
$create_query = <<< ______ CREATE TABLE items ( todo_id INTEGER PRIMARY KEY, memo TEXT, flag TEXT, ctime INTEGER); ______;
続いてはテーブルに新しい項目を挿入
する記述です。
INSERT INTO テーブル名 (カラム1、カラム2、カラム3)
VALUES (値1、値2、値3)
);
のように記述していきます。
$db->exec("INSERT INTO items (memo,flag,ctime) ". "VALUES ('データの初期化','done', $now)");
データベース中にTODO項目を追加する
少し難しくなってきましたが、入力した項目がphpの変数$_GET[‘newitem’]にセットされ、
isset()関数で値がセットされているか判定し、セットされていた場合実行しています。
$db->execメソッドを利用して、SQL文を実行。これでデータベースに新しいTODO項目が追加される。
if (isset($_GET['newitem']) && $_GET['newitem'] != "") { $memo = sqlite_escape_string($_GET['newitem']); $now = time(); $db->exec("INSERT INTO items (memo,flag,ctime) ". "VALUES ('$memo','new',$now)"); }
データベース中のTODO項目を更新
UPDATE テーブル名
SET カラム1=値1、カラム2=値2
WHERE 更新条件
WHERE節を書き忘れると値が一気に更新されてしまうので中が必要。
todo_id = ~ のように指定する。
消化する方法はflag=doneにして消化している。
$todo_id = intval($_GET['done']); if ($todo_id > 0) { $db->exec("UPDATE items SET flag='done' ". "WHERE todo_id=$todo_id"); }
のようにしてできたのが下記のTODO管理ツールです。
書籍を見るだけでは一覧で、終わったもの終わらないものを$listをechoして表示するだけなのですが,
JSでタブ切り替えしてみました。
また、スマホでも使えるようにHTML5に書き直して、スマホで仕事中でも使えるようにしています。
今後は機能拡張を施していきたいと考えています。
インプレスジャパン
売り上げランキング: 60369
他の学校に通っていた時の参考書籍。
最後の方に擬似Twitterのようなものがサンプルであるのと、
それを解説してくれているのでサービスを開発したい方にはおすすめ
毎日コミュニケーションズ
売り上げランキング: 5209