使用php以html形式使用sql表中的数据


Use data from sql table in a html form with php

我正在尝试用html创建一个表单,它有一个组合框和一个从SQL表自动创建的列表。我已经设法在课堂上制作了一个集成的组合框,在这里我使用了所有的数据库语句。但是,如何在另一个编写表单的位置使用代码?我还在学习php,这对我来说有点新鲜,所以我希望我的问题能清楚地理解。

代码:

    class Lesdb
    {
        private static $lesdbInstantie = null;
        private $dbh;
        private function __construct($server, $username, $password, $database)
        {
            try
            {
                $this->dbh = new PDO("mysql:host=$server; dbname=$database", $username, $password);
                //Bij error: exception opwerpen
                $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            }
            catch (PDOException $e)
            {
                die($e->getMessage());
            }
        }
        public static function getLesdbInstantie($server, $username, $password, $database)
        {
            if(is_null(self::$lesdbInstantie))
            {
                self::$lesdbInstantie = new Lesdb($server, $username, $password, $database);
            }
            return self::$lesdbInstantie;
        }
    public function testComboBox()
    {
        echo "<h1> ComboBox functienamen </h1>";
            $sql = "SELECT DISTINCT ftienaam FROM werknemers";
            $stmt = $this->dbh->prepare($sql);
            $stmt->execute();
        $dropdown = "<select name='ftienaam'>";
        foreach ($stmt as $row)
        {
            $dropdown .= "'r'n<option value='{$row['ftienaam']}'>{$row['ftienaam']}</option>";
        }
        $dropdown .= "'r'n</select>";
        echo $dropdown;
    }
}
?>

函数TestCombobox确实有效,但它应该在我的表单中实现,该表单不在类Lesdb中。示例:

function ShowForm()
{
    ?>
    <form action="Index.php?actie=zoekInLijst" method=post>
        <label for=ComboBox>ComboBox</label>
            <select name = "the_name">
                <option value="name">SQL STATEMENTS
            </select>
    </form>
<?php
}

因此,我只想在我的表单中从类Lesdb中调用函数testComboBox。

您必须创建该类的一个新实例。然后,您必须在该实例上加载函数。

不要忘记将类包含在文件的顶部。

$theLesDB = new Lesdb();
$theLesDB->testComboBox();

假设你的类在一个文件中,我们称之为Lesdb.php,而你的表单在另一个文件(例如form.php)中,那么你必须将你的类包括在表单文件中(就在顶部,在其他代码之前),

include_once "<PATH_TO_YOUR_FILE>'Lesdb.php";

创建一个类的实例(在您想要使用该实例的地方),

Lesdb db = new Lesdb();

并在ShowForm函数中使用该函数。

db->testComboBox();