Вы уже присвоили первой строке $row_rs_jobboards11
, поэтому, когда вы вызываете $row_rs_cms11 = mysql_fetch_assoc($rs_jobboards11)
в цикле do / while, он начинается со второй строки таблицы.
Использование do / while вместо while не имеет значения, но использование разных имен переменных имеет значение.
Обновление, чтобы объяснить разницу между while, do / while и проверкой правильности имен переменных.
цикл while, который работает:
while ($row_rs_cms11 = mysql_fetch_assoc($rs_jobboards11)) {
echo '<tr>';
//stuff here
echo '</tr>';
}
цикл do / while, который также работает
$row_rs_cms11 = mysql_fetch_assoc($rs_jobboards11);
do {
echo '<tr>';
//stuff here
echo '</tr>';
} while ($row_rs_cms11 = mysql_fetch_assoc($rs_jobboards11));
Обратите внимание, что переменная $ row совпадает. Если вы пропустите первый вызов, он все равно будет работать, но вы получите дополнительный (пустой) перед выводом любого контента. Если вы установите переменную с другим именем (и используете вызов mysql_fetch_ *), внутренний указатель базы данных будет установлен на вторую строку таблицы. Следовательно, вы пропускаете первую строку в таблице, поскольку для нее установлена другая (неиспользуемая) переменная.
Мораль истории:
Вы можете использовать цикл while или do / while, просто убедитесь, что
- Если вы используете do / while, переменная строки должна быть создана до для входа в цикл. И,
- Убедитесь, что имена ваших переменных совпадают!