通过PHP以HTML格式显示数据库获取的数据

时间:2018-06-28 08:27:31

标签: php html

我有一个textarea来创建文章,然后将其加载到数据库中。 我还有一个功能,可以按章号获取文章以在网站上显示。

该函数运行良好,但是获取的数据,或者更好的说来自PHP函数的所有回波都直接进入了body-tag,这杀死了我的布局。

我想知道如何将PHP输出中的数据显示到HTML的特定区域中?

index.html:

<body>
    <div class="main">
        <h1>WebDev's Playground</h1>
        <p>Momentaner Versuch: Formatierte Texte in Datenbanken speichern.</p>
        <div class="playground">
            <form action="?send=1" method="post">
                <label for="heading">Überschrift</label>
                <input name="heading" type="text" style="display:block;" />
                <label for="chapter">Kapitel</label>
                <input name="chapter" type="number" style="display:block;"/>
              <textarea name="textbereich" rows="10" cols="130"></textarea>
              <input type="submit" style="display:block;" />
            </form>
        </div>
        <div>
            <form action="?read=1" method="post">
                <input name="chapter" type="number">
                <button type="submit">Auslesen</button>
            </form>
        </div>
    </div>
</body>

这是来自我的logic.php:

    //BEGINNING fetching data / ouput data
    if (isset($_GET['read'])) {
        $id = "";
        $chapter = $_POST['chapter'];
        $heading = "";
        $textbereich = "";
        $error = false;
        $errormessage = "Es ist folgender Fehler aufgetreten: ";

        if (!$error) {
            $statement = $pdo->prepare("SELECT * FROM beitraege WHERE chapter = :chapter");
            $result = $statement->execute(array("chapter" => $chapter));
            $ergebnis = $statement->fetch(PDO::FETCH_ASSOC);

            print ("<h2>" . $ergebnis['heading'] . "</h2>");
            print ("<p>Kapitel: " . $ergebnis['chapter'] . "</p>");
            print ("<pre>" . $ergebnis['content'] . "</pre>");
        }
    }
//END fetching data/ output data
?>

解决方案:我必须将数据存储在变量中,并在所需区域的HTML上调用它们。

$outputHeading = "";
$outputChapter = "";
$outputContent = "";

if (!$error) {
            $statement = $pdo->prepare("SELECT * FROM beitraege WHERE chapter = :chapter");
            $result = $statement->execute(array("chapter" => $chapter));
            $ergebnis = $statement->fetch(PDO::FETCH_ASSOC);

            $outputHeading = $ergebnis['heading'];
            $outputChapter = $ergebnis['chapter'];
            $outputArticle = $ergebnis['content'];
        }

和HTML:

<div>
    <form action="?read=1" method="post">
        <input name="chapter" type="number">
        <button type="submit">Auslesen</button>
    </form>
        <h2><?php echo $outputHeading;?></h2>
        <h2><?php echo $outputChapter; ?></h2>
        <pre><?php echo $outputContent; ?></pre>
</div>

1 个答案:

答案 0 :(得分:-1)

我希望您在此文本区域中获取数据并将其存储到数据库中,

<textarea name="textbereich" rows="10" cols="130"></textarea>

但是当您从数据库中获取标签时,应该是

<textarea name="textbereich" rows="10" cols="130"><?php echo $value; ?></textarea>

以便该值将填充在文本区域中