第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);
一列表示したいのであればテーブルの最終列に削除ボタンを配置してしまうのが手っ取り早い気もします。
また<table>
はブロック要素、<a>
はインライン要素です。したがって、<table>
にdisplay:inline-block
のCSSを当てるのが妥当だと思います。
HTML, CSSはレイアウトの基礎なので要素の種類、配置ルール最低限は押さえておきましょう。
井村さんのコードを用いてテストしたところデータの削除は確認できました。
恐らくですがリダイレクトの処理が上手くいっていないのかも知れません。
リダイレクトの処理ではredirect
関数を呼び出していますが、これはちゃんと定義されていますか?
ぜひ確認して見てください。
第9回の課題お疲れ様でした!チュータの阿部です。
今回の課題はログイン機能とセッションの管理かと思います。ログイン機能はWebサービスを開発する上で重要な機能の一つです。仕組みを1つ1つ理解しながら忠実に再現されたとのことで、よかったかと思います。
さてまずは質問にお答えしたいと思います。
1 header と redirect の違い
PHPにはheaderという標準関数が用意されています。headerはリダイレクトの為に使われ、授業でも使われたかと思います。
一方でredirect関数に関してはPHPドキュメントを見て見ましたがやはり見当たりません。。。
これはそもそも存在している標準関数なのでしょうか?
授業でよく使われている
function.php
を見て見ると、リダイレクトの為の関数が以下のように定義されているかと思います。これがredirect関数の正体なのではないでしょうか。このredirect関数はheader関数の記述を簡約化するために定義されているようです。なので実態は同じものだと思います。
code の打ち間違いについて
codeの打ち間違いって結構やってしまいますよね 笑
結局人間ってミスしてしまう生き物なので打ち間違いを少なくするように注意しながらプログラミングをするのは労力を使うだけであまりいい方法ではなさそうです。
こういった細々とした問題は全てエディタ(VScode)に任せてしまうのが一番いいのかなと思います。
まずはエディタの補完機能を最大限に活用することが重要かと思います。
入力時の予測候補は必ず使うようにしてください。例えば
![スクリーンショット 2019-10-16 2 51 37](https://user-images.githubusercontent.com/30901083/66856937-cc575b80-ef75-11e9-858a-f3c5c893fba4.jpg)
if
文を1つ追加する場合でも予測候補がいくつも出てきます。この予測変換のうち、写真のような
箱型
のマークを選択すると、コードのテンプレートが入力されます。このテンプレートを活用すればカッコの閉じ忘れなどを防ぐのに効果的です。
また変数を定義したものの、他の場所で変数を利用していないと定義した変数の文字色が少し暗くなります。
例えば
$var
と定義したのに、$ver
としていれば$var
の文字色が暗くなるので気付きやすいかもしれません。タイピングミスに気をつけるのも大事だと思いますが、間違った際に検知できるようにしているとむしろ楽なのかもしれませんね〜
間違わないように神経を張りながらコードを書くのは疲れますしね 笑