<?php
$sql = "select * from profile";
$result = mysqli_query($link, $sql);
while($data = mysqli_fetch_array($result)) {
echo "<input type='text' id='TextField' name='profile_input' value='".$data['profile_text']."'>";
}
?>
input type=text は一行だけです。改行が効きません。
textarea は改行が効きますが、DB では <br> をつけて改行を表現しているということなので <br> がそのまま表示されてしまいます。
(textarea にデータを表示するには、①の回答のようにタグの中に記載します。)
preg_replace 関数などで、表示するときには br タグを改行文字に置き換えて表示。
データを登録するときには、逆に改行文字を br タグに変換してから DB を更新する。
というようなやり方が良いのではないでしょうか。
<TEXTAREA>$data['profile_text']</TEXTAREA>
テキストエリアは、タグ内に書くんですよ。