なずブログ

インフラSE、Java開発、リモートワークエンジニアな人のメモ帳

職業訓練の授業49日目~PHPからmysqli接続~

f:id:nazuna_0124:20170306210455p:plain

いつぞや紹介の元デザイナーお姉さまより問題作成ツール作ってーと依頼がきました。


元々そんなかんじの作ろうとしてたので二つ返事でOK


前のものが終わってないのにさらに追加されました。


新しいことを教わるたびに作りたいものが増えるという無限ループ。


元々マルチタスクが苦手なので少々テンパり気味のなずなです。

仕事の抱え込み過ぎには注意しましょうね!


予習による余剰を使い切ってしまいました。

しかたないので午前中にテキストだけ見て授業分を終わらせる

午後に作りたいものを作るというスケジュール構成。


授業の存在意義が危ぶまれますがこれも一つの使い方ということで!


というわけで、本日はMysqlへの接続です。


接続含めて使う関数はmysqliとiが付いてます。

mysqlだけでいいならPDOよりこっちのが楽という触れ込みでした。


ドットインストールさんではPDOだったので、わたしはそっち使おうかと思います。


sqlだけでやってたことをPHPを通してブラウザからアクセスできるようになったところで終了。


PDO接続ですが、今のとこの所感はめんどくさくて書く量が多いです。

増えてる部分が何のためかわからなくてちょっとストレス。


プレイスフォルダーの型指定はなんのためなんだろう。文字列と数値型って、指定するなら全部すればいいのに。


さって、18日からは3連休です。

1日くらいはお休みしつつ残りは全部作りたいものにつぎ込もうとおもいます!

職業訓練の授業48日目~json、ファイルのアップロード~

f:id:nazuna_0124:20170310221050p:plain

みなさんはこれらの言葉に出会ったときのことを覚えてますか?


アルミ缶の上にあるミカン


ごはんかけごはん



わたしは言葉では言い表せない、ときめきみたいなものを感じた

ような気がしましたがやっぱり気のせいでしたごめんなさい。


というわけで、jsonさんです。


平たく言うと、xmlさんとCSVさんのめんどくさい部分を無くしたかんじ

簡単掲示板のファイル形式をなぜ3つから選べたのか謎

jsonでいいんでわ


json_decode一発で変換できますが、

引数にtrueつけとかないとオブジェクトが返ってくるので注意。


オブジェクトにしておいても何かやったらいつの間にか連想配列になってるとかある様子。

だったら最初からそうしよう!


jsonにしておくもう一つの理由がajaxの存在です。


submitで$_POSTする度に画面がカチカチ切り替わっていやイヤー!

わたしがよく使う○○はこんな風になってないのになんで???


PHP入門を勉強すると恐ろしくストレスに感じます。

この解決さんがajaxさんです。


使うにはjavascriptさんが必要です。

ほぼjqueryが必須です。


授業ではajaxjqueryも範囲外です。(紹介もなかったり)


これ使うだけで急にかっこよくなるのでPHPだけでめげずに

挑戦してみよー!

職業訓練の授業47日目~ファイル読み書き、xml~

f:id:nazuna_0124:20170304205638p:plain

Netobeansさんがすばらしい!


ちょっと触ってみただけのレベルの私にはぴったりです。


補完とかタグ閉じの感じがイメージ通りで気持ちいいです。


VBEに一番似てるとも言います。


どうでもいいミスが減って効率があがってます。

これならサクサク作れるような気がする夢をみました。



さて、本日のお題はファイルの読み書き関係です。


ここまでくればいろいろ出来ますね!

その分だんだん難しくなってます。


先生<「みんなの生気がだんだん無くなってる」


私の目がうつろなのは、自宅で作ってる分で寝不足なだけです(・∀・)


配列があやしいところに、多重連想配列が押し寄せてくるのでそりゃ大変ですよね…


そんな流れで出て来るxmlさん。CSVさん、JSONさんとの関係が気になります。


たぶんsqliteさんも仲間に入れてほしそうにこちらを見てそうです。


simplexml_load_fileで返ってくるのはオブジェクトだよー。

オブジェクトだからプロパティだよー。

PHPのプロパティは「->」だよー。


……きっと理解してる人のほうが少ないんじゃないかと。


PHPさんは連想配列が好きすぎるんじゃないでしょうか。

このあたりは一度まとめます。わたしも混乱中。


とりあえず、キー値の取得はarray_keys($dic)[0]でとれますよ!とメモ。


明日は掲示板作成だそーです。

がんばりましょー!

列が可変するテーブルが存在するデータベース設計~アンケート作成ツールの開発~

f:id:nazuna_0124:20170312082946p:plain

自主要件と学校要件で洋服を変えてみるというテスト中


気づいてもらえるかは気にしません。


データベースに触れると作りたくなる選手権で表彰台が狙えそうなツール。

アンケートの作成、集計ツールさんです。


作った人も多いだろうに、どういうわけかスッキリした答えが見つかりません。


最大の難所は質問数が固定じゃないこと。


たぶん、リレーショナルデータベースである意味がない設計

そもそもデータベースを諦めた人も多いんじゃないでしょか。


手元にあると便利かも!ということで着手してみようかと思います。


欲しい(いらない)機能の簡単なまとめ

  • アンケートの質問数は固定じゃない

  • 集計機能もつけてね

  • 選択方法はテキスト入力、ラジオボタン、複数回答可のチェックボックス

  • 結果をCSV出力で欲しい(後でExcelでグラフ化したい)

  • アンケート作成者は特定の人だけ

  • 1を答えた人だけ2を答えるみたいなのは、設問工夫で対処してもよい。


以下はざっくりとした作り方


1.フォルダ分けとテキスト

アンケートをフォルダ単位に分けちゃう。

結果も最初からCSVで格納。

実は作るの簡単。Jscriptの利用でローカル化も簡単


PHP習ったのにこの方法はどうなの?を除けばとても安定

2.最大設問数を規定してテーブルを準備

割りと多いかと思います。

50問もあるアンケートなんてないでしょと大量の列を作ってみたりとか。


使わないカラムがあることにすごいもやもやします。

3.一つの列に全部つっこむ

1セルを1ファイルとして見立てているような使い方。

たぶん、やっちゃだめ

4.全てを行にする。あとで列に変換。

アンケート名 問1 問2 問3 回答者
好きな食べ物 プリン オムライス ハンバーグ なずな

こんな風にするんじゃなくて

アンケート名 答え 回答者
好きな食べ物 1 プリン なずな
好きな食べ物 2 オムライス なずな
好きな食べ物 3 ハンバーグ なずな

こうやって縦に並べる。

あとで横にしちゃおーね、というもの。


行が驚きの長さに!



“” いまのところ 作りやすそうな2でサンプル作成。

4に挑戦してみようかなって思います。

職業訓練の授業46日目~PHPの基本 正規表現、クッキー、セッション

f:id:nazuna_0124:20170304205638p:plain

四当五落って言葉ご存知でしょうか。


志望校に受験には4時間睡眠なら受かる5時間も寝ると落ちちゃうという言葉。


普通に考えると4でも5でも長く続けば死んじゃいます


元の意味はともあれ、1時間の差が大きいよと捉えたいです。

1日1時間☓30日は30時間。これだけあったら、簡単なのはなんか作れます。


最初ほど手を動かすのって大事ですよね!

出来はともかく完成までなんとかしよう!


などと自分を励ましつつ、こんばんわ。


本日の授業1は正規表現


SQLと並んでプログラムのついでに出てくる法則的ななにか。


エディタで慣れてる人なんかは有利なのかもしれません。


忘れた頃にやってきた悩ませてくるので、どんなときに使うかだけ覚えておけばいいんじゃないでしょうか。


URLを表す正規表現がとても長いということだけ覚えました。


続いてはセッションとクッキーです。

なぜこいつらと、正規表現が同じ日なのか。


簡単に聞いただけで使うと危険な代表格な気がします。


本日のこの3つはこの部分だけで別に補足があるとうれしいですねー。

プログラムやる前に学んでおいても楽になる部分でもありますな!

職業訓練の授業45日目~続PHPの基本、カレンダー作り~

f:id:nazuna_0124:20170303232129p:plain

ちょっと前に緑のたぬきって言いながら、赤いきつねとタイピングできないって話題がありました。

htmlでハイトって読みながらhightはうてません!

(もちろんヘイト読みです)


でもある日気が付きましたハイティー(high + t)なら打てる!むしろ速い!


少し話を戻して、何が言いたいかといいますとPHPの関数でstrtotimeがあります。

文字列の日付をタイムスタンプで返す・・・だと意味わかんなくて、dateが扱える形式になおしてくれます。


最初は「すとるぅとたいむ???」などと読んでて全く覚えられませんでした。


よーく見たら str to timeなのですよね、これ… そしたらあっさり!

Google翻訳で「string to time」調べると「文字列と時間」だそーです)


file_get_contentsみたいにこの手のやつは「_」区切りが多いのになんででしょーね。



というわけで、本日の授業です。

表題の通りカレンダー作りは終わってます。


カレンダー前にアンケートフォームのPHP混ぜたとこまで作るのもありました。


でもデータ保存できないので今のとこ意味なさげ。


PHP授業開始から18時間かかって使えるものが作れてない恐怖。

気長にがんばりましょう!

PHP初心者が開発環境を考えてみた

f:id:nazuna_0124:20170309204724p:plain

むがー! いまいち何で作るか決まらなくて落ち着きません。


というわけで、各環境の一瞬触ってみただけの感想です。

くれぐれも参考にしちゃだめです


慣れたらきっと印象変わると思います

PHP動かしてくれるもの

XAMPP

いわずとしれた。たぶんこれが一番楽だと思います

さっさとPHP動かしたいのよ!ってことなら特に。


eclipseにくっついてくる場合もあります。

Vagrant

簡単という触れ込みですが、実はわかりにくくてめんどくさい。

ドットインストールさんはこちらで説明されてます。


たぶん、まだ私がこれの便利さを理解してないんだとおもうの。

Vmware + Linux

位置から作れるのはメリットなのかデメリットなのか。

とにかく動かし初めまで時間がかかります。

動いてしまえば疑似本番環境みたいになるのでそこはよさげ。

レンタルサーバー

こうなったらもう借りちゃえ

お金がかかる、もしくは容量などに制約がある、申込みから解説まで時間かかるときがある。


すぐやりたいならちょっと厳しいのかも。



入力する方法

エディタ(サクラエディタterapad

ぱっと見がかっこ悪い

割りと致命的。

Atom

最初からいろいろできる。見た目もスマート。

重くて遅い

テキストエディタIDEの中間と考えたほうがいいんじゃないかしら。

エディタにしては重い

IDEとしては不親切

という感じ。全く逆に感じる人も多いのでは。


画面左側にフォルダ構成でるのが好き。


PHP補完入れてみたら必須じゃない引数まで突っ込まれる仕様でした。 (設定あるのかな)

Sublime

プラグイン入れるのがよくわからず挫折。

ここからIDE

eclipse

容量が大きい。プラグインの検索やインストールにやたら時間がかかる。
フォントがきたない、タブキー押すと入る「>」が邪魔。


javascriptの補完がよくわかんない。


内部ブラウザですぐ確認できるのはうれしー。


フォントは等幅メイリオを作ってくれた方がいらっしゃるらしく、これで解決!

NetBeans

ダーク系が色がいまいち。フォントが汚い。

厄介なのがアンチエイリアスがどうとか、日本語と英字でフォントを変える設定とか

いっぱい見つかってしまうこと。


eclipseと同じく等幅メイリオで解決した気もします。


atom themeが落ちてましたがインポートがわからず挫折…


F6キーですぐ実行になるのは素敵。

AptanaSudio

いきなりエラーが表示されてインスールできない


解決したと思ったら


日本語が入力できない


というところで終了。


まとめ

学校ではAtom+xampp 、おうちではeclipse+xamppとなりました!


NetBeansさんはもうちょっと見てみる予定。