$x = 1;
while($x <= 2) {
echo 'div class' . $x;
foreach ($arr as $k => $v) {
if ($k < 13) {
//тут первый вариант
} else {
//тут второй вариант
}
if ($k == 12) {
// тут надо див закрыть
$x++;
}
}
}
// и тут закрыть див
Ну в теле цикла создайте условие что меньше 12 и прочее
If else и два блока вывода для каждого условия
В вашем случае даже условия не нужно, а вложить в цикл, пример ниже
Чтоб достать все книги автора, надо будет делать два запроса, а так один
Таблица нужна, так будет проще и посчитать книги и авторов и вообще все удобнее
Gd так просто не умеет. У шрифтов есть ещё и куча разных параметров, и чтоб правильно писать надо расчитывать рамки и отступы. Вообще лучше возьмите imagick там шрифты берутся из ос, их не нужно прикладывать рядом, а просто брать из списка
То что делается в gd через 10 строк кода, в imagick делает одна