Это ничего не делит пополам. Это дает остаток с 2 в качестве делителя. Это будет 0, если четное, 1, если нечетное. Так что, если djs_all_num
нечетно, он введет оператор if. Вы должны написать 2
вместо этого. Использование неявного преобразования из строки в 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) {