Secondo me ci manca una parentesi graffa (}). Ne apri tre, ossia i due while e l'if, e ne chiudi solo due, ossia il while più interno e l'if. Il primo while quando lo chiudi?

dovrebbe comunque essere chiuso prima del </table> quindi aggiungi una } prima della echo "</table>"; e buona fortuna.