kodda hata olması illaki yazım hatası olmasını gerektirmez.
hata mesajı olarak dediği $sql değişkeni boolen olarak dönüyor yani true yada false.
aynı zamanda boolen in fetch diye elemanı olmaz diyor.

sonuç olarak $sql değişkeninden dönen değer false ise sonraki $sql->fetch çalışmayacak hata verecektir.
db sorgunuzdan dönen değer var mı onlara odaklanın. her zaman veri dönmeme durumları var ise de while sql fetch lerinizi if($sql) arasına alın.