0

タイトルについてすみません、私の問題を説明するのは少し難しかったです。それで、ここにあります。http://appsolute.vacau.com/cmsのテキストエリアに変数があります最初から変数の出力が表示されます。フォームを送信してテキストを更新すると、変数が更新されます。これまでのところ、すべて正しいですよね?フォームを送信すると、ページが再読み込みされますが、すべてのコンテンツは変数の以前のコンテンツからのものです。しかし、チェックすると、変数が更新されました。ページを更新しても。では、フォームを送信した後、変数の実際の値を確認できないのはなぜですか? それが理にかなっていることを願っています...

<html>
    <head>
        <title>Milan CMS</title><?php
$host     = "x";
$dbname   = "x";
$username = "x";
$password = "x";
$dbh      = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$sth      = $dbh->prepare("SELECT * FROM milan   ");
$sth->execute();
$result   = $sth->fetchAll();
?>
    </head>

    <body>
        <?php
        var_dump($result);
        $myFile   = "trainingen.json";
        $fh       = fopen($myFile, 'w') or die("can't open file");
        fwrite($fh, json_encode($result));
        fclose($fh);
        ?>
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="trainingen">
            <h3>Trainingen:</h3><p><textarea name="nametrainingen" rows="10" cols="60"><?php echo $result[0]['value']; ?></textarea></p>
            <input name="submit" type="submit" value="Verzenden"><input type="reset" value="Veld leeg maken">
        </form>
        <?php
        $invoer   = $_POST['nametrainingen'];
        if (isset($_POST['submit'])) { //test if submit button is clicked
            $sql = "DELETE FROM milan WHERE tag = 'trainingen'";
            $sth = $dbh->prepare($sql);
            $sth->execute();
            $sql = "INSERT INTO milan (tag, value) VALUES ('trainingen', '$invoer')";
            $sth = $dbh->prepare($sql);
            $sth->execute();
        }
        ?>
    </body>
</html>
4

3 に答える 3

0

次のようにロジックを再配置します。

<?php
        $invoer   = $_POST['nametrainingen'];
        if (isset($_POST['submit'])) { //test if submit button is clicked
            $sql = "DELETE FROM milan WHERE tag = 'trainingen'";
            $sth = $dbh->prepare($sql);
            $sth->execute();
            $sql = "INSERT INTO milan (tag, value) VALUES ('trainingen', '$invoer')";
            $sth = $dbh->prepare($sql);
            $sth->execute();
        }

        $sth      = $dbh->prepare("SELECT * FROM milan   ");
        $sth->execute();
        $result   = $sth->fetchAll();
    ?>
       <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="trainingen">
            <h3>Trainingen:</h3><p><textarea name="nametrainingen" rows="10" cols="60"><?php echo $result[0]['value']; ?></textarea></p>
            <input name="submit" type="submit" value="Verzenden"><input type="reset" value="Veld leeg maken">
        </form>
于 2012-08-22T21:10:01.857 に答える
0

シンプルなロジック。最初にDBに変更を加えます

DELETE FROM milan
INSERT INTO milan

次にDBから行をロードします

SELECT * FROM milan
于 2012-08-22T21:08:52.303 に答える
0

出力する前にデータを処理する必要があります。これは、特定の手順に従う必要があることを意味します。

  • コア構成のロード: データベース接続など
  • テーブルの挿入 / 更新および変数の入力 / プリセット
  • (現在更新されている)データベースからものを選択する
  • 出力 (ほとんどの場合 html)
于 2012-08-22T21:17:13.523 に答える