Ну, в 1-м самом случае все логично: ты же полям новые имена не дал в виде:
select max(price) as price, ...
вот и брал неусуществующий индекс в масиве.
Примечание: а варнинги E_NOTICE все-таки в конфигах (или из программы) отключай - без них и правильнее и лучше.
Что же касается неполучения результата с помощью
$row_buy = mysql_fetch_row($result_buy);
при взятии результата по индексу вида $row_buy[0] - то тут прямо какая-то фантастика... Если ты не путаешь, и результат действительно есть. Проверь на всякий случай:
echo mysql_num_rows($result_buy);
Если выдаст 1, то перепроверь опять весь остальной код...