$ djs_all_num = mysql_num_rows($ djs_all_db); while($ djs_all = mysql_fetch_array($ djs_all_db)){if($ djs_all_num% "2"){
私のif()ステートメントでは、これにより行数が半分になるはずなので、それ以降の行では残りの行が表示されます。
これは正しいです?
それは何も半分にしません。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) {
%演算子(別名モジュラス(編集))は、剰余(/編集)があるかどうかを判別します。奇数/偶数行を決定するために非常に頻繁に使用されます。
したがって、1%2は.5 1に等しくなります(私の計算が正しければと思います)。 2%2=0。
お役に立てば幸いです。
編集:申し訳ありませんが、いくつかのローカルテストを行い、私のステートメントが正しくないことがわかりました。正しくなるように変更されました。