тебе сервер пишет ответ, что команда mysql_fetch_array ожидала получить корректный результат, а получила какую-то хрень.. . потому что неверно составлен запрос. В твоем запросе не было проставлено значение переменной $query, а вместо этого ты запросил те записи, где в title написана строка '$query'.
Во-первых, почитай о том, какие кавычки и что означают в php - там написано, что в двойных кавычках (" ") php ищет переменные и подставляет вместо них их реальное значение, а одинарные кавычки (' ') php не парсит и считает все их содержимое строкой в том виде, как видишь и ты сам. Ну а у апострофов (` `) свое предназначение.
Во-вторых, возьми за правило перед вызовом обработки результата запроса из базы данных выяснить, а пришло ли вообще хоть-что:
$result = mysql_query('SELECT `img` FROM `settings` WHERE `title`=\'' . $query . '\'', $db1);
if (mysql_num_rows($result)) {
$imgs = mysql_fetch_array($result);
}
В приведенном мной примере есть потенциально проблемное место: нужно следить, чтобы внутри $query не оказалось неэкранированных одинарных кавычек (смотри команды типа addslashes или простую замену символов в строке) ; также не нужно следить повсюду за тем, чтобы текст, передаваемый через $query, был обернут в кавычки, а у тебя, если title хранит текстовый (или строковый, или символьный) тип данных, то сразу вылезет еще одна ошибка. Хотя, если title хранит числовой тип данных, то кавычки не нужны.
И последнее, почитай, какие кавычки какой смысл имеют для mysql.