You didn't include SQL queries
If ships are core part of the game - although I favor EAV in this I'd go for just 3-table
user (id, ...) - user_ships (id_user, id_ship) - ships (id, ...)
SELECT name FROM ships WHERE id IN (SELECT id_ship FROM user_ships WHERE id_user=$id)