PHPを使ってBIツールを作って仕事の生産性をあげた話

PHP単体でもHTMLよりもできることの幅はひろがるけれど、それにプラスしてデータベースを扱えるようになると無敵感を味わえます。

PHPを手っ取り早く覚えるには作りたいものを作ること

PHP覚え方 WEB制作

PHPとデータベースを組み合わせて自分の作りたいものを作れた時は、もしかして天才なのかなと思えるくらい充実感がありました。作ったものを見返すと全然足りてないものが多いんだけど、作り終えたときの満足感は最高に気持ちいいですよね。それが大事。

公開日:
最終更新日:

PHP覚え方 関連ワード #94
PHP
WEB制作
  • Twtterでシェアする
  • はてなブックマーク
  • フェイスブックでシェア
  • ポケットでシェア
  • LINEで友達に送る
  • rss2.0

PHPプログラミングの覚え方 何かを作ること

PHPの覚え方というか、どんなことでも同じだと思うんですが、作ってみること。これにつきますよね。

最初のころは echo 'こんにちわ' から始まって、とりあえずの使い方を覚えるじゃないですか。
で、とりあえずのPHPの使い方の基礎の基礎を覚えたら、なんとなく想像できるけど、全ての作り方がわからないものを作ることをオススメします。

私が初めてそれっぽいものを作ったのは、性格診断という占いコンテンツだったんですが、これはもともとJavascriptで作ったことがあって、そのあとFlashにして、そのあとPHPで作りました。

これは焼き直ししただけなので、あまり良い事例ではないんですが、初めての制作物ということで。

THE PHPなコンテンツ BIツールを作った話

私が本格的にPHPらしいものを作ったのが、社内で使うBIツール。
BIツールというのはビジネス・インテリジェンスツールの略で、簡単に言うと売上集計ツールです。

私の仕事ECのWEB担だったので、自分が楽するためのツールを作りました。

作ったきっかけはめんどくさいから

私の仕事は単品通販と呼ばれる業種なんですが、通販って広告打たないと売り上げ上がらないので、広告のレスポンスがどれくらいあったかが超重要なんですね。

安くない広告費を支払う以上、どんな広告が良くて、広告費に対して受注件数が何件あったか、1件当たりの獲得単価はいくらになったか、など色々報告しなきゃいけないことが多いんです。

ただ、通販の売上なんて1日ごとに変わっていくから、いちいち報告すんのがめんどくさかったんですよ。

社内でしか見れないイントラネットサーバーがあったので、システム部の部長と仲良かったので、そのサーバーを使わせてもらって好き勝手作ってました。

社内ネットワークでしか見れないのをいいことにセキュリティなどをあまり考えなくてよかったので、気軽に使えました。

実際に作ってみて想定と違う点が多々あると気づく

PHPとデータベースを使って、ECのカートシステムから受注CSVをダウンロードして、データベースにインポートして、それをPHPで成形したものを作ったんですが、我ながらいいものができたと。

作ったことがないことを理由に、何もしなかったら何も作れないじゃないですか。

失敗しても誰にも迷惑かけない環境で、何かを作るということは非常に大事なことです。迷惑をかけるのはNG。

最初は日々の売り上げと、月間の売上をまとめるだけの簡単なものだったんですけど、そこから、商品カテゴリごとに区切ったり、広告媒体ごとに集計したりと、どんどん進化させていきました。

最初の壁 処理速度が遅い

いいものができたと調子に乗って、過去の売り上げデータをガンガンデータベースに突っ込んでいきました。
20~30万行くらいの量だったと思うんですが、表示速度がクソ遅くなったんですよ。

そのころの私はデータベースの情報を引っ張り出して、WEBブラウザで見れれば満足していたので、表示速度やプログラム、SQLの効率化などまったく気にしてなかったわけです。

データベースと連携させて数十万のデータがあると処理速度がこんなに遅くなるのか。と、データ多いからしょうがないかと半分あきらめていた時に、データーベースのインデックスという機能を初めて知りました。

PHPとSQLの処理を分けることを覚える

データベースはちゃんと設計してクエリーを工夫すれば、20万行程度の情報量だったら高速に処理ができる。そんなことも知らずに作ってんですよ。

よくわからないままインデックスを使ったら、今まで数秒またないと表示されなかった情報が、比べ物にならない速度で表示されるようになりました。まぁ、今考えるとそれでも遅かったと思います。

そもそもデータベースの設計なんて知らない素人が作っていたので、Varchar(データベースのフィールドの定義の1つ、文字列を意味する)の255文字でほぼ作っていた記憶があります。
日付データも、数字も全部これにしていたような。

そのうえ、集計処理もPHP側で行っていたので、今考えると恐ろしい作り方をしていたなぁと思います。共用のレンタルサーバーで同じことやってたら追い出されてもおかしくないレベル。

そこからバージョンアップを重ねる

データベースの設計方法や、MySQLのクエリーの奥深さを知り、データベースのデータ型の指定方法や、集計はSQLでやった方が高速だとか色々学びました。

仕事で使うとはいえ、私が勝手に作ったツール。
システム部といってもインフラ系の人たちなので、PHPのことを聞ける人がおらず自力で工夫を重ねて、今ではほぼストレスない速度で表示をさせることができる程度に腕をあげましたよ。

まだまだ改善の余地は多々ありますが。

会社で使うツールを、自力で作ったという経験がものすごく大きかったです。

ディズニーランド

ディズニーランドも作ろうと思ったから作れた

やってみないとなにも生まれない

BIツールと勝手に呼んでますが、初めの一歩はただの売り上げ集計ツールだったんですよ。
こういうどこまでも拡張可能なツールを作ることは、自分の技術向上にものすごくつながりました。

できることが1つ増えると、そこからさらにやりたいことが生まれる。際限なく何かを作り続けることができる。
自分にできるかどうかはわからないけど、完成形のイメージがしやすかったので、色々な手段を用いて作り上げました。

作ってて、楽しかったのが大きいですね。あと、めんどくさい報告業務から逃れることができたので、仕事の生産性が上がりました。
数字報告をするために数字をまとめるなんて、バカみたいじゃないですか。明日になったら変わってんだから。

PHPを覚えるにはとりあえず何かを作ること

作りたいものがないと、PHPを覚えるための「作業」になりやすく、作業をしているときには喜びが生まれないので、どんなことでもいいから作りたいものを見つけて、それを作ることが一番の早道だと思います。

作れるかどうかの判断は、完成形をイメージできて、詳細はわからないけど、あれを使えればできそうだな、と想像がつけば何とかなります。

完璧じゃないけど最低限の機能は満たしている、最初のゴールはここに設定して、作ってからもっとブラッシュアップさせれば完成度は上がりますので。

  • Twtterでシェアする
  • はてなブックマーク
  • フェイスブックでシェア
  • ポケットでシェア
  • LINEで友達に送る
  • rss2.0
はてなブックマーク

おもしろかったらぜひ、はてなブックマークをお願いいたします。

次の記事はこちら

プロフィール:fuchi WEBクリエイター

fuchi
WEBクリエイター / 個人事業主
41歳 / ♂ / 鳥好き

WEB制作とWEBマーケティングをやってきました。
PHPとMysqlを使って面白いことをやりたいと模索中です。

ロリポップのレンタルサーバーを使っています

プロフィール詳細はこちら

文中で紹介している商品

誰もがあきらめずにすむPHP超入門

誰もがあきらめずにすむPHP超入門 データベース処理 【誰もがあきらめずにすむPHP超入門】

1,848円 (Amazon価格)

初心者からちゃんとしたプロになる PHP基礎入門〈PHP8対応〉

初心者からちゃんとしたプロになる PHP基礎入門〈PHP8対応〉 プログラミング 【初心者からちゃんとしたプロになる PHP基礎入門〈PHP8対応〉】

2,750円 (Amazon価格)

PHP覚え方 オススメ関連コンテンツ

PHP 関連記事はこちら すべての WEB制作 記事はこちら

PHPを覚えたらSQLも覚えて自作のCMSを作ってみよう

PHPを覚えたらSQLも覚えて自作のCMSを作ってみよう

PHPを覚えたらデータベース回りも一緒に覚えるのがオススメです、 制作できるものの幅が広がって色々な仕組みを理解できます

PHPを使った漢字クイズの作り方解説 その1 POST送信

PHPを使った漢字クイズの作り方解説 その1 POST送信

【初心者向け】PHPを使った漢字クイズの作り方を解説します。1回目はGETとPOSTの簡単な解説から実際に使うPHPの紹介です。

PHPの良いところは難しいと思われていること

PHPの良いところは難しいと思われていること

PHPって人が思っているほど難しくなく、便利でいろいろな面白いものを作れるプログラミング言語です。

PHP+HTMLで作る 祝日対応のカレンダーの作り方

PHP+HTMLで作る 祝日対応のカレンダーの作り方

forとifとforeachがメインのPHPによるカレンダーの作り方です。 祝日設定がちょっとめんどくさいんですよね。

PHPの連想配列の多次元配列を使ったクイズの作り方

PHPの連想配列の多次元配列を使ったクイズの作り方

PHPの配列ってイメージは付くけどちゃんと理解するのが難しい。 例題がわかりづらいせいだと思うんですよね。これはわかりやすい。

PHP+jQueryで作る土日祝日が選べないカレンダーの作り方

PHP+jQueryで作る土日祝日が選べないカレンダーの作り方

PHPで作るカレンダーの作り方の第二弾です。 今回はクリックした日付を取得してformに代入するところも解説してます。

WEB制作をささえるHTML・CSS・Javascript・PHP

WEB制作をささえるHTML・CSS・Javascript・PHP

いつもWEB制作をささえてくれるいろいろな言語を紹介しています。 他にもMySQLがあるんですが長くなるので割愛しました

ブログアクセスランキング

新着記事

カテゴリリスト

プロフィール:fuchi WEBクリエイター

fuchi
WEBクリエイター / 個人事業主
41歳 / ♂ / 鳥好き

WEB制作とWEBマーケティングをやってきました。
PHPとMysqlを使って面白いことをやりたいと模索中です。

ロリポップのレンタルサーバーを使っています

プロフィール詳細はこちら

WEB制作関連・オススメ商品 amazon