Als je wilt weten of hij bestaat kun je bv met mysql_num_rows($q2) nakijken.
Er zijn ook andere methodes, maar ik heb de koffie nog niet op, dus het loopt wat stroef bovenin.
Backticks zijn een truck van MySQL om gereserveerde woorden te kunnen gebruiken. Dit moet je niet willen.
Om dit te voorkomen is het verstandig om nooit backticks te gebruiken (En het scheelt weer dataverkeer naar je server maar dat performence verschil zal niet snel merkbaar zijn)
wat is dan precies je probleem ? jij vraagt of de username in de post gechecked word in de database. Antwoord is ja, hij haalt door je * alles op, wat als username de post username heeft.