У вас в скрипте три ошибки:
1. Во-первых: принцип работы do-while подразумевает, что цикл сначала делает указанное действие один раз, а после – выполняет то, что указано в while. То есть do-while в любом случае единожды выполнит итерацию цикла, вне зависимости от условий в while, что подразумевает, что при пустом ответе базы данных (например когда нет ни одной записи, или СУБД не вернула ни одной записи при наличии оператора WHILE) у вас всё равно произойдёт одна итерация, то есть появится подобный пустой блок.
2. Во-вторых: в строке
$myrow = mysql_fetch_array($result);
вы пытаетесь перегнать в массив результат MySQL-запроса $result, а выше и ниже по коду у вас фигурирует $result2.
Фактически при первой итерации цикла, у вас массив $myrow ещё пуст (поскольку преобразование в массив из пустой переменной не может быть выполнено). И только при второй итерации в него помещаются значения из запроса (из while).
3. Для обращения к элементам массива по буквенным ключам, правильнее использовать не mysql_fetch_array, а mysql_fetch_assoc – это перевод в ассоциативный массив.
Попробуйте так:
$result2 = mysql_query ("SELECT id, title, img FROM cartridge_table", $db);
while ($myrow = mysql_fetch_assoc($result2)) {
printf ("
%s %s %s
", $myrow["img"], $myrow["id"], $myrow["title"]);
}
Так же укажу нюанс по базе данных, который напрямую не относится к ответу на вопрос, но в будущем будет полезен: в столбце img у вас указаны не пути на изображения, а HTML-код с тегом вывода этих изображений.
Рекомендую не хранить изображения в таком виде в базе данных, поскольку если у вас будет множество строк, и вам впоследствии будет необходимо, например, добавить класс к этому изображению (например class="image-preview"), вам фактически придётся вручную редактировать все строки таблицы, чтобы каждой строке задать этот класс.
Храните в базе данных только пути к файлам изображений, а выводите их кодом наподобие:
printf("
", $myrow['img']);
В этом случае, при необходимости откорректировать вид этого изображения на странице, вам будет достаточно изменить одну строку в PHP-исходнике, и не будет необходимости затрагивать базу данных, а тем более вручную изменять каждую строку.
Также ещё небольшое дополнение к части, где указываю на хранение в базе данных только ссылок на изображения: если изображения располагаются на вашем сайте (то есть вы получаете их не с чужого ресурса), рекомендую указывать абсолютные пути к файлам без указания доменного имени, например: "/template/images/myimage.png". Это очень поможет в случае, если вы будете переезжать на новый домен или разворачивать копию сайта на локальном домене - не придётся переписывать пути к изображениям в каждой строке.