先日、回答をいただいた例を元にしたのですが
例)
SELECT A.*, B.*
FROM A
CROSS JOIN B
WHERE A.カテゴリID = 5
AND B.内容 LIKE concat( '%', A.キーワード, '%' )
Warning: Division by zero~と出てしまいます。
単純なSQLであればきちんと表示されるので
mysqlへの接続、データベースの選択はできているようです。
AND B.内容 LIKE concat( '%', A.キーワード, '%' )部分の対処が原因でこのような状態になっているのだと思いますが、こういった場合は特別な書き方が必要なのでしょうか?
>Warning: Division by zero~
php側で、1÷0のようにゼロによる除算を行った際に起こるエラーです。
$a / $b などの式であれば $b の中身がゼロの時にエラーになりますので、
例えば、下記の様な具合にエラー回避します。
if ( $b == 0 ) { ゼロの場合の対応 } else { $a / $b の計算 }
エラー発生箇所は、そのエラーメッセージの最後に、
「ファイル名 on line エラーの起こった行」といった形で示されています。
余談ですが mysqli_num_rowsなどの関数を使えば、
SQL実行結果で得られた件数を取得できますので、
結果件数によって処理を分けるということも考慮するとさらに良いでしょう。
Mysqli接続の場合はmysqli_num_rows関数
http://www.php.net/manual/ja/mysqli-result.num-rows.php
少し古くなったMysql接続の場合はmysql_num_rows関数
http://www.php.net/manual/ja/function.mysql-num-rows.php
コメント(2件)
ON B.内容 LIKE concat( '%', A.キーワード, '%' )