Pero que sentido tiene lo que haces?
Haces un "select" en busca de tal registro bajo cierto criterio (nombre = $nombre), pero luego haces un "UPDATE" a toda la tabla (por qué no usas criterio "WHERE") con los mismos datos
Te faltaría el "WHERE" .. no sé bajo que criterio .. pero algo tipo:
Código PHP:
$sql = "UPDATE personajes SET nombre='$nombre', constelacion='$constelacion',".
"procede='$procede', categoria='$categoria' WHERE nombre = '$nombre'";
Un saludo,