Kilka uwag:
1) zamiast while użyj foreach
2) gdzie i co wpisujesz z palca ?
3) co Ci wypluwa baza danych ?
weź sobie :
dump($sql);
i będziesz wiedzieć co Ci wypluwa baza danych
4) poczytaj jak zrobić dobre połączenie a bazą danych :
https://www.cloudways.com/blog/connect-mysql-with-php/
Bo jeśli nie łączysz się z bazą danych to nawet nie wiesz gdzie występuje problem.
Proponuje zastosować coś takiego:
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}