Transformando meu comentário em resposta:
Apenas olhando seu código por um segundo, posso ver que você está usando o
$row variável tanto para o loop externo quanto para o loop interno. Tente renomear o $row do loop externo variável para $outerRow e o $row do loop interno variável para $innerRow . Este pode ser o primeiro problema. Isso também pode se aplicar a outras variáveis, como por exemplo o $result variável.