読了: 約 4 分

最近データベースを絡めてサービスを開発したいと考えていましたので、
少しずつサーバーサイドも勉強していきます。

目的

・フロントエンドだけでなく、サーバーサイド・データベースを絡めて、検索やユーザーのデータを保持するようなサイト
またはその様なサービスを作成するため。
特に、ログインや会員登録等の場合必須となるため、一から勉強し始めます。

参考とした書籍は下記です。
エンジニアの先輩からおすすめされてそのまま読み始めました。

ウェブDIYで行こう! たのしいPHP入門
クジラ飛行机
インプレスジャパン
売り上げランキング: 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管理ツールです。

todo管理ツール

書籍を見るだけでは一覧で、終わったもの終わらないものを$listをechoして表示するだけなのですが,
JSでタブ切り替えしてみました。
また、スマホでも使えるようにHTML5に書き直して、スマホで仕事中でも使えるようにしています。
今後は機能拡張を施していきたいと考えています。

ウェブDIYで行こう! たのしいPHP入門
クジラ飛行机
インプレスジャパン
売り上げランキング: 60369

他の学校に通っていた時の参考書籍。
最後の方に擬似Twitterのようなものがサンプルであるのと、
それを解説してくれているのでサービスを開発したい方にはおすすめ

よくわかるPHPの教科書
よくわかるPHPの教科書

posted with amazlet at 12.08.14
たにぐち まこと
毎日コミュニケーションズ
売り上げランキング: 5209