Es ist absolut unsinnig,
alle Datensätze abzufragen, wenn du lediglich wissen willst, ob ein bestimmter Wert schon in der Datenbank steht.
Mache eine Abfrage, die gezielt nach einem Datensatz sucht, in dem die entsprechende Spalte diesen Wert hat - und ziehe aus der Anzahl der Ergebniszeilen den logischen Schluss.
(Wenn du jetzt gleich fragen willst, „und wie geht das?“ - dann schau bitte in ein Grundlagen-Tutorial.)
Darüber hinaus ist dieses Abfragen-dann-Einfügen auch eher schlecht. Da kann dir nämlich ein anderer Prozess dazwischen kommen, und dann ist der gerade noch als nicht vergeben ermittelte Name doch schon vergeben, wenn du dann deinen neuen Datensatz einfügen willst.
Deshalb macht man das sinnvoller so, dass man einen Unique Index auf die betreffende Spalte legt - der sorgt dafür, dass die Datenbank jeden Wert nur genau ein mal akzeptiert.
Und dann macht man das INSERT einfach, ohne vorher groß zu
prüfen; und wenn das einen Fehler gibt, dann fragt man ab, welchen - und kann dann, wenn es sich um eine Verletzung dieses Unique Index handelte, dem Nutzer eine entsprechende Fehlermeldung
präsentieren.
Und insgesamt sieht dein Code noch reichlich chaotisch aus - alle möglichen Bedingungen wild zusammengewürfelt und abenteuerlich verschachtelt, so als hättest du jede einzelne dann eingebaut, wenn sie dir eingefallen ist.
Du solltest dir angewöhnen, erst mal den Ablauf eines Scriptes zu
planen,
bevor du anfängst wirklich Code zu schreiben. Das kann man auch bspw. erst mal auf einem Blatt Papier machen.