Skip to content

Instantly share code, notes, and snippets.

@TanisukeGoro
Last active October 15, 2019 18:01
Show Gist options
  • Save TanisukeGoro/c6a63437bf6aeaf7df240094816fa9a2 to your computer and use it in GitHub Desktop.
Save TanisukeGoro/c6a63437bf6aeaf7df240094816fa9a2 to your computer and use it in GitHub Desktop.
井村哲郎さんのフィードバック

フィードバック

第8回の課題お疲れ様でした。今回からフィードバックに参加します阿部です。よろしくお願いします!

今回の課題でSQLの基礎がある程度学べたのではないでしょうか。Insert, Deleteができていてよかったと思います。
テーブルに拘っていた点がよかったです。CSSはなかなか拘りを見せるのに苦労しますが、使いこなせるようになると一気にWeb制作が楽しくなると思います。
せっかくなので、index.phpからselect.phpに遷移するリンクを配置してはどうでしょうか。

詳細ページに遷移させる方法ですが、Tableタグaタグで囲うのはNGです。
詳細ページに遷移させたいのであれば<td>内にそれぞれリンクを埋め込むようにするか、CSSのdisplay:tableを使うといいと思います。

また、detail.phpで全てのデータを$_GETで受け取ろうとしていますが、これも一つの手ではありますがあまり好手ではありません。
これではMySQLでデータベースから紐づいたデータを取得できるメリットを十分に活かせません。GETメソッドで渡すのはidのみにしてそれに紐づいたデータは SQLを叩くのが一般的だと思います。一応、SQLも叩いているようなのでコードの消し忘れな気もしますが念のため。

私も書籍管理の課題に取り組んだことを思い出し少し懐かしい思いになりました。
書評などであれば、Google Books APIsなんかを使ってみると面白いかもしれません
書籍検索APIであるGoogle Books APIsの使い方
下記のコードで書籍のデータなんかを取得できてしまうので結構便利ですよ。

$search_item = $_POST['search_item'];
$response = file_get_contents("https://www.googleapis.com/books/v1/volumes?q={$search_item}");
$result = json_decode($response,true);

疑問1.

一列表示したいのであればテーブルの最終列に削除ボタンを配置してしまうのが手っ取り早い気もします。
また<table>はブロック要素、<a>はインライン要素です。したがって、<table>display:inline-blockのCSSを当てるのが妥当だと思います。
HTML, CSSはレイアウトの基礎なので要素の種類、配置ルール最低限は押さえておきましょう。

疑問2.

井村さんのコードを用いてテストしたところデータの削除は確認できました。
恐らくですがリダイレクトの処理が上手くいっていないのかも知れません。
リダイレクトの処理ではredirect関数を呼び出していますが、これはちゃんと定義されていますか?
ぜひ確認して見てください。

@TanisukeGoro
Copy link
Author

TanisukeGoro commented Oct 15, 2019

第9回の課題お疲れ様でした!チュータの阿部です。
今回の課題はログイン機能とセッションの管理かと思います。ログイン機能はWebサービスを開発する上で重要な機能の一つです。仕組みを1つ1つ理解しながら忠実に再現されたとのことで、よかったかと思います。

さてまずは質問にお答えしたいと思います。

1 header と redirect の違い

PHPにはheaderという標準関数が用意されています。headerはリダイレクトの為に使われ、授業でも使われたかと思います。
一方でredirect関数に関してはPHPドキュメントを見て見ましたがやはり見当たりません。。。
これはそもそも存在している標準関数なのでしょうか?

授業でよく使われている function.php を見て見ると、リダイレクトの為の関数が以下のように定義されているかと思います。

function redirect($file_name){
    header("Location: ".$file_name);
    exit();
}

これがredirect関数の正体なのではないでしょうか。このredirect関数はheader関数の記述を簡約化するために定義されているようです。なので実態は同じものだと思います。

code の打ち間違いについて

codeの打ち間違いって結構やってしまいますよね 笑
結局人間ってミスしてしまう生き物なので打ち間違いを少なくするように注意しながらプログラミングをするのは労力を使うだけであまりいい方法ではなさそうです。

こういった細々とした問題は全てエディタ(VScode)に任せてしまうのが一番いいのかなと思います。
まずはエディタの補完機能を最大限に活用することが重要かと思います。

入力時の予測候補は必ず使うようにしてください。例えば if文を1つ追加する場合でも予測候補がいくつも出てきます。
この予測変換のうち、写真のような箱型のマークを選択すると、コードのテンプレートが入力されます。
スクリーンショット 2019-10-16 2 51 37

このテンプレートを活用すればカッコの閉じ忘れなどを防ぐのに効果的です。

また変数を定義したものの、他の場所で変数を利用していないと定義した変数の文字色が少し暗くなります。
例えば$varと定義したのに、$verとしていれば$varの文字色が暗くなるので気付きやすいかもしれません。

タイピングミスに気をつけるのも大事だと思いますが、間違った際に検知できるようにしているとむしろ楽なのかもしれませんね〜
間違わないように神経を張りながらコードを書くのは疲れますしね 笑

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment