人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでMYSQLのデータを表示する際に
先日、回答をいただいた例を元にしたのですが

例)
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.キーワード, '%' )部分の対処が原因でこのような状態になっているのだと思いますが、こういった場合は特別な書き方が必要なのでしょうか?

●質問者: at0413
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
ベストアンサー

>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

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ