仕事と晩飯とその他

日記です。

Webサイト構築日記

・データベースのデータ表示
 この段階では最近登録の24件のみの表示。PHPでデータベースに接続してSQLでレコードを読み込んで、という流れの処理をこの前からちょこちょこやっていたおかげで意外とあっさり。そして、以前よりSQLがわかってきた。楽だ。

・個別ページの表示
 データベースからSQLで抽出。以前はSQLで読み込んだ全件をforeachで回してphpのif文で抜き出して、とか、そんな処理をしていたけど、最初からSQLで一件抽出のほうが圧倒的に分かりやすい。昔の自分を叱りたい。
 CSSはなかなかうまくいかず。けっこうはまった。最終的に何とかなったけど、この段階でもう少しちゃんと考えておけば全件表示用のページと共有できたかも。後悔先に立たず。

・ページングの処理と全データへのアクセス
 ページング処理は随分前に社のWebでやったことあるけど、あの時はあまり意味も分からずコピペしたコードを手探りで修正していた。今回はやるべきことがしっかり把握できたので、ネットで探さず全て自分で考えてなるべくシンプルな処理にできた。基本的には全件レコード数をページ毎の件数で割って全ページ数を把握→現在のページ数に対応する値をSQLのLIMITとOFFSETで指定、という流れ。あとは、変数での位置(現在のページ)の受け渡し等とリンク。ページが増えた時の処理は後回しにしてしまった。まあ、なんとかなりそう。

・個別ページに、twitterボタン
 探してコピペ。このあたりで頑張るつもりはあまりない。

・個別ページにアマゾンへのリンク
 これより前は版元ドットコムへのリンクのみ。ハイフン付き13桁ISBNからasinの生成は関数にして外部ファイルに置くことにした。require_onceとか、やっと理解できた。ついでにSQLインジェクション対策も関数化(文字列の置換で対策とか、そもそも根本的に間違ってるということを知ってショック。静的プレースホルダってなんだよ……)。この辺のセキュリティ対策についてもようやく腑に落ちた(腑に落ちるどうこう以前に根本的に間違ってたし正しい情報をきちんと参照できてもいなかったってことでした。正しい対策を知ったのでよかったのかも)。

・登録日・増刷予定日・刷数による並び替え、及びタブ表示
 並び替えはSQLのORDER BYで。SQLのテーブルでコラム名を日本語にしてしまったことを猛烈に後悔したが、なんとかなった。変数の受け渡しも忘れそうだったが無事に。
 タブはCSSだけでいけるのかと思ったけど、結局、「リストをタブ表示→アクティブなタブのidをPHPスタイルシートに出力→アクティブなタブの表示をCSSで」といった処理に落ち着いた。PHPでidやclass、スタイルの指定まで書き出すのは随分と楽だ。これならもっと色々とできそう。

・個別ページに丸善ジュンクへのリンク
 丸善ジュンクはハイフン無しISBN13桁で簡単にリンクできる。全部がこういうのだと楽なんだけどなあ。

・版元ドットコム以外のデータを試験的に登録。
 画像データを送っていただけたので助かった。画像が無い場合については版元ドットコムだと自動化されているので問題ないが外部の場合はどうしようか。やっぱりアマゾンかなあ。

・個別ページに、はてなボタン(コピペ)

・個別ページに、facebookのいいね!ボタン
 基本的にコピペなんだけど、取得されるページのタイトルはPHPで処理した。スタイルシートjavascriptの中身も直接PHPで変更できるのは楽だなあ。本当に、これなら以前は出来なかったことももう少しできそうだ。


現状ここまで。前後関係はちょっと違うところあるかも。

実際には上記の作業の合間に延々とスタイルシートを修正し続けている。どちらかと言うとそっちのほうが時間がかかってるかも知れない。

次の大物の課題、情報登録受付は、メールフォームを使うことにした。。将来的にはDBに直接入れてもらうほうがいいけど、現状ではメールでもらってコピペもしくは手打ちのほうが安心なんで。早速、昔作ったPHPのメールフォームを見直した。あまり出来が良くないので作り直すことにした。なので、情報の受付はもう少しかかりそう。でも、なんとかなりそうだ。