Например, потому, что ты НЕ вызываешь функцию, которая выполнит команду SQL.
$result = ("INSERT INTO users (name, username, email, password) VALUES ('$name','$username','$email','$password')"); - это ты присваиваешь переменной $result СТРОКУ с ТЕКСТОМ запроса. А ВЫПОЛНЕНИЕ этого запроса ГДЕ?
P.S. Очередной копипаст очередных говнокурсов. С таким кодом любой начинающий хакер взломает твою базу за 2 минуты.
1. На isset нужно проверить все заносимые в базу переменные, а не одну.
2.Если ты склеиваешь в php текстовую строку, то собирай ее через точку (.), например, $name.','.$username.','....и т. д.
3. Если это СУБД MySQL, то сперва нужно:
- приконнектиться к базе.
- выбрать внутри СУБД конкретную базу, к которой будешь посылать запросы, или перед названием таблиц в префиксе через точку указывай имя базы.
- перед запросом нужно установить кодировку результатов, что-то типа: set names "cp1251";