2016-06-24 13 views
-1

私は以下を実行しようとしています。ログにエラーが表示されていますが、スクリプトが必要な作業をしています

データベースからを選択し、エコー、3未満の結果がある場合は、私は3から減算に結果の量をしたいと代替SELECT文字列を使用し、コードを私は期待に動作しませんそれはログ内のエラーを除きます。

PHPの警告:はmysql_num_rows()は、パラメータ1がリソースであることを期待し、このエラー

に与えられた nullは私が結果にどのように多くの行を確認することができますどのように、結果は空であるためと考えられますテーブルに結果がないときにエラーが発生することはありません。

$sqls="SELECT * FROM xxx ORDER by xxx_id ASC LIMIT 0,3"; 
    $objRs = mysql_query($sqls); 

データベースが動作し、SQLクエリが機能します。この下の行は、NULL結果が出たときにエラーが表示されます。サーバを私に怒らせることなく行の数をチェックする別の方法はありますか?

$count = mysql_num_rows($objRS); 

     If (!empty($count)) { 
        $pnb = 3; 
      } else { 
       while($rows = mysql_fetch_array($objRs, MYSQL_ASSOC)) { 
+0

$ objRsの最後の文字の大文字と小文字は、使用して初期化するときとは異なります。 – wazelin

+0

mysqliまたはpdoを使用してください - mysqlは推奨されていません。 –

+0

[mysqli \ _fetch \ _array()]の重複している可能性があります。これは、mysqli \ _fetch \ _array()/mysqli \ _fetch \ _assoc()/ mysqli \ _fetch \ _row()は、パラメータ1がresourceまたはmysqli \ _result、boolean givenであることを期待しています](http://stackoverflow.com/questions/2973202/mysqli-fetch-array-mysqli -fetch-assoc-mysqli-fetch-row-expects-parameter-1) – codedge

答えて

4

コードは偶然だけで動作します。あなたは、タイプミスがあります

$objRs 

$objRS 

変数名は大文字と小文字が区別され

と同じものではありません。しかし、あなたが設定した比較は実際には結果をチェックしません。この: $countどんな値を持っている場合

!empty($count) 

はちょうどチェックしています。それは何か。その値が正の数であろうとなかろうと、あなたのコードは気にしません。しかし、おそらく...

+0

デイヴィッド、ありがとう、私はそれを逃したとトリック、フォレストの木を見ていない話をしたようだ。 –

関連する問題