2

わかりましたので、最初にコードを示してから、何が問題なのかを説明します。

$sql_result = $mysqli->query("SELECT * FROM account_information WHERE username = '".$_SESSION["username"]."'");
while ($row = mysqli_fetch_assoc($sql_result)) {
    $about=$row['about'];

echo'<table>';
echo
<<<EOT
  <form action="profile.php" method="post">
  <textarea name="about" rows="5" cols="50" >{$about}</textarea> 
  <td><input name="submit" type="submit" value="submit"></td>
  </form>

EOT;
echo'</table>';

if ( isset( $_POST['submit'] ) ) { 
        $about = $_POST['about'];
                    $sql_result2 = $mysqli->query("update account_information SET about='".$about."' WHERE username = '".$_SESSION["username"]."'");
        $edit=false;
        echo "<div id='about'>".$about."</div>";
}
}

テキストエリアに何かを入力するとわかるように、それは私のデータベースに入る必要があり(そうです)、再びページに来たときにテキストを表示したいと思います。コード:$about=$row['about'];そうすべきです。私はこれに問題を見つけることができないようです。最初は何も表示されません (データベースに保存されたテキストエリアの前のエントリ)。どうすればよいですか? 何が問題ですか?

4

2 に答える 2

1

送信コードは、while ループの外で選択クエリの上に配置する必要があります。

$about = '';
if ( isset( $_POST['submit'] ) ) { 
    $about = $_POST['about'];
    $sql_result2 = $mysqli->query("update account_information SET about='".$about."' WHERE username = '".$_SESSION["username"]."'");
    $edit=false;
    echo "<div id='about'>".$about."</div>";
}

$sql_result = $mysqli->query("SELECT * FROM account_information WHERE username = '".$_SESSION["username"]."'");

等々 ....

コードのように、最初にデータベースから古い値を取得してから、これをデータベースに再度入れます。コードを新しいコードとテキストエリアに入力したテキストに置き換えます。したがって、最初にデータベースに保存してから、それを取得して更新されたテキストを取得する必要があります。

于 2013-09-23T08:33:44.627 に答える
-1

そうですね、値が更新される前に値が更新されたことをスクリプトが判断するのは少し難しいので、これを使用します。

  $sql_result = $mysqli->query("SELECT * FROM account_information WHERE username = '".$_SESSION["username"]."'");
while ($row = mysqli_fetch_assoc($sql_result)) {
    $about= isset($_POST['submit']) ? $_POST['about'] : $row['about'];

echo'<table>';
echo
<<<EOT
  <form action="profile.php" method="post">
  <textarea name="about" rows="5" cols="50" >{$about}</textarea> 
  <td><input name="submit" type="submit" value="submit"></td>
  </form>

EOT;
echo'</table>';

if ( isset( $_POST['submit'] ) ) { 
                    $sql_result2 = $mysqli->query("update account_information SET about='".$about."' WHERE username = '".$_SESSION["username"]."'");
        $edit=false;
        echo "<div id='about'>".$about."</div>";
}
}
于 2013-09-23T08:30:56.790 に答える