ど素人から毛を生やす。<延>

Web

floatなボタンを下揃えしようとしたら思いのほか苦戦した話。

Web > css 2018年3月2日(最終更新:1年前)

どもです。
フォームのCSSは永遠の課題感あります。

インラインブロック要素であるボタンが2つ以上並んでいて、サイズが違うものがある。
このとき、ボタンを下揃えで並べたい。

通常は、ボタンにvertical-align:bottom;でおk
インラインな要素なら、普通はこれで解決できます。

が、
事情があって、このボタンはfloat:right;されているのです。

具体的には、このボタンたちはフォームのsubmit用ボタンで、... 続きを読む »

[MySQL]特定の条件下にて検索結果が1件になってしまうらしい。

Web > Other 2018年2月13日(最終更新:1年前)

どもです。
MySQLにて。

少し前にリリースしたソースに、唐突に不具合の報告が入りました。
曰く、特定の条件下にて、本来は複数件ヒットするはずの検索結果が1件になってしまうとのこと。

デバッグしてみたところ、SELECT文の出力までは問題ないように見えます。
が、確かに条件次第でMySQLからの返答が1件になってしまっています。
この条件についても、たまたま見つかった不具合であって、あくまでこうなる条件自体は不明。

今回のケースですが、原因がまさかのORDER BY。

ここのDBの構成は、ひとつの親に対し、複数の子がつきます。
そのため、子は親のIDと枝番をキーにしています。親子をJOINした状態です。求めるのは子。

こうなっていたところを、

にしたところ、何故か直りました。

結局、原因はよくわからないままなのですが、今回のケースだと、明らかに修正版の方が「正しい」。
「値が同じだからどちらでも良いだろう」とか軽いノリはダメですね。反省。... 続きを読む »

古いjQueryでform制御したらsubmitできない、または「s[y] is not a function」になったとき。

Web > javascript 2018年2月6日(最終更新:1年前)

どもです。
jQueryでフォームを制御していたら、submitできない事案が。
コンソールに「TypeError: s[y] is not a function」というエラーが発生しています。

このエラー自体は「関数でないものを、関数呼び出ししようとした際に発生するエラー」らしいです。
詳細はMDNへのリンクを貼っておきます。

結論から言えば、今回の原因は2つ。

ひとつは、使用していたjQueryが古かったことに起因します。なんと1.8.3。このご時世に1系です。... 続きを読む »

tableのwidthを定めても、中の要素に押し広げられてしまう件

Web > css 2018年1月19日(最終更新:1年前)

どもです。

テーブル要素を使うとき、多くはcolgroupを使用して、セル幅を指定します。

例:

AAA BBB CCC

ただ、中の要素にサイズが指定されていたり、select-optionなどの横にしか伸びない要素を入れると…

もう!ママちゃんと60pxに収まりなさいって言ってるじゃない!

この場合は、中の要素を直接サイズ指定しなければダメです。

ちなみに、inheritはtdに幅が指定されていないと効かない。不便。... 続きを読む »

[MySQL]warning1292が出たので困ってたらすっごいケアレスミスだった話。

Web > Other 2017年12月21日(最終更新:1年前)

どもです。

MySQLにて。

1292 Truncated incorrect DOUBLE value

などという警告が発生いたしまして。
この警告、一言で概要をいうなら、

「型が違ぇぞコラ(゜-゜)」

具体的には文字型なのに数値型で検索するとかそういうので発生する奴です。

WHEREでIS NULLしている箇所を削除したらエラーが起きなくなったので、WHEREに原因があると思っていたのですが、原因はFROMの方にありまして。

LEFT JOIN ... 続きを読む »

MySQLのUPDATEでサブクエリを使用したときに陥りがちな「You can't specify target table」

Web > Other 2017年12月6日(最終更新:1年前)

どもです。

MySQLにて、とあるテーブルに対し、
カラムAが一定の値である行のカラムBと一致する、全てのカラムBの行を更新対象にする。
という処理がやりたかった。

ので、UPDATE文にサブクエリを使えば行けるかな?と思い、実行。

UPDATE 対象テーブル
SET 更新したいカラム = 'xxx'
WHERE カラムB = ANY... 続きを読む »

htmlspecialcharsを使用するときは「重ねがけ」に要注意

Web > PHP 2017年12月5日(最終更新:1年前)

どもです。

とある一覧を表示するとき、

まぁ内容は何でも良いですが、とにかくtext型の値を全て「htmlspecialchars()」で出力したとします。

このとき、「シューズ&バッグ」というカテゴリがあったとして、
とあるページで表示が「シューズ&バッグ」になってしまうという不具合が報告されました。

つまり、エンティティ化された「&」が、何故かエンティティの状態で表示されていると。

この原因、限りなく簡略化すると、こんなもん。

つまり、1つの文字データに対し、htmlspecialchars()が2重にかかってしまった状態。
こうなってしまうと、

はい。
そりゃ表示が「シューズ&バッグ」になりますな。

何かとhtmlspecialchars()使いたがる方っていますが、それ自体が正しいのはわかりますが、
既存のコードを見て「echoするときはhtmlspecialchars()した方が良いんだ~」みたいな感じになると、ちょっと危険。... 続きを読む »

心当たりのない「illegal mix of collations for operation」

Web > Other 2017年10月26日(最終更新:1年前)

どもです。
MySQLにて、テスト環境では問題のなかった

CONCATが、本番環境のときだけ

illegal mix of collations for operation 'concat'

なんてエラーを吐きおってくださりました。

意味は「文字コード違うからCONCATできねーぞ?」。

カラムごとに文字コードを変更する例はありますが、
今回の場合、双方とも文字コードを特別設定していません。

では、何の文字コードが違っているのか?... 続きを読む »