-1

$ djs_all_num = mysql_num_rows($ djs_all_db); while($ djs_all = mysql_fetch_array($ djs_all_db)){if($ djs_all_num% "2"){

私のif()ステートメントでは、これにより行数が半分になるはずなので、それ以降の行では残りの行が表示されます。

これは正しいです?

4

2 に答える 2

6

それは何も半分にしません。2を除数として余りを与えます。これは、偶数の場合は0、奇数の場合は1になります。したがって、djs_all_num奇数の場合は、ifステートメントに入ります。2代わりに書くべきです。stringからintへの暗黙的な変換を使用することは、混乱を招き、不要です。

左側のオペランドは行インデックスではなく合計行数であるため、これは行ごとには機能しないことに注意してください。行インデックスを使用するには、次のようにします。

$row_ind = 0;
$djs_all_num = mysql_num_rows($djs_all_db);
        while($djs_all = mysql_fetch_array( $djs_all_db )) {
        if ($row_ind++ % 2) {
于 2010-07-24T01:57:09.803 に答える
1

%演算子(別名モジュラス(編集))は、剰余(/編集)があるかどうかを判別します。奇数/偶数行を決定するために非常に頻繁に使用されます。

したがって、1%2は.5 1に等しくなります(私の計算が正しければと思います)。 2%2=0。

お役に立てば幸いです。

編集:申し訳ありませんが、いくつかのローカルテストを行い、私のステートメントが正しくないことがわかりました。正しくなるように変更されました。

于 2010-07-24T01:57:26.150 に答える