Dies kann mit einer Abfrage erfolgen
SELECT * FROM `char` WHERE char_id = (SELECT char_id FROM rankpvp ORDER BY ratio DESC LIMIT 1)
Beachten Sie, dass char ein reserviertes Wort ist und daher in Backticks eingeschlossen werden muss. Vielleicht ist dies das eigentliche Problem, auf das Sie gestoßen sind (Syntaxfehler), und kein Problem mit Ihrer While-Schleife. Trotzdem ist eine Abfrage der richtige Weg