簡體   English   中英

如何遍歷mysql查詢的結果並以html形式在選項值中顯示它們

[英]How to loop through results of a mysql query and display them in option values in an html form

如何遍歷MySQL查詢的結果,並在腳本的html形式的選項值中顯示它們。

我嘗試將值手動放入選項標簽和值中,但是我想根據數據庫中已有的內容來執行此操作。 我是否需要另一個數據庫連接才能與表單元素本身在同一部分中運行?

<title>Add a unit</title>
</head>
<body>
<div class= "container">
<h1>Add a unit</h1>

<?php // Script 12.4 - add_size.php

// This script adds a blog size to the database.


if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Handle the form.

    // Connect and select:
    $connection = mysqli_connect('localhost', $user, $password, $database);
    mysqli_set_charset($connection, 'utf8');

    // Validate the form data:
    $problem = false;
    if (!empty($_POST['unit']) && !empty($_POST['size']) && !empty($_POST['price'] && isset($_POST['building'])) {
        $unit     = mysqli_real_escape_string($connection, trim(strip_tags($_POST['unit'])));
        $size     = mysqli_real_escape_string($connection, trim(strip_tags($_POST['size'])));
        $price    = mysqli_real_escape_string($connection, trim(strip_tags($_POST['price'])));
        $building = mysqli_real_escape_string($connection, trim(strip_tags($_POST['building'])));
    } else {
        echo '<p style="color: red;">Please submit a unit and an size and price.</p>';
    }

    if (!$problem) {
        // Define the query:
        $query = "INSERT INTO individualspecs (Space, Size, Price, fk_Id, Id) VALUES ('${unit}', '${size}', '${price}', '${building}', 0)";

        // Execute the query:
        if (@mysqli_query($connection, $query)) {
            echo '<p>The unit has been added!</p>';
            // why doesnt print "$msg"; work when using $i
        } else {
            echo '<p style="color: red;">Could not add the unit because:<br>'.mysqli_error($connection).'.</p><p>The query being run was: '.$query.'</p>';
            echo $msg;
        }

        mysqli_close($connection); // Close the connection.
    } // No problem!
} // End of form submission IF.


// Display the form:
?>

<form action="add_units.php" method="post" enctype="multipart/form-data">

    <p>Select Building: <select name="building">
        <option value="<?php echo ?>"><?php echo ?></option>
        <option value=""></option>
        <option value=""></option>
        <option value=""></option>
    </select>
    </p>

    <p>Enter Unit: <input type="text" name="unit" size="40" maxsize="100"></p>
    <p>Enter Size in Sq Feet: <input type="number" name="size" size="40" maxsize="100"></p>
    <p>Enter Price: <input type="text" name="price" size="40" maxsize="100"></p>



    <!-- removed upload photos -->


    <input type="submit" name="submit" value="Add indiviual Space!">

</form>

</div>
</body>
</html>

我希望選擇下拉菜單顯示數據庫中當前所有建築物的列表,以便用戶可以選擇要添加其單元的建築物。 如果在數據庫句柄情況下不存在建築物,即回顯“在數據庫中找不到建築物,則需要添加建築物記錄,然后再嘗試添加單個單元”;

這是我的建築物表: https : //imgur.com/a/2KMOUBD

這是我的單位表: https : //imgur.com/a/w24IFuy

這是執行您需要的簡單代碼

您的代碼太混亂了,請嘗試清理它:-)

我們使用PDO類連接到mysql DB,因為它更強大,更安全

您可以更改root與你的數據庫的用戶名pass與你的數據庫密碼db與您的數據庫名稱閱讀更多關於PDO 這里

// connect to db
$dbh = new \PDO('mysql:host=127.0.0.1;dbname=db', "root", "pass");
// query to select from db
$q = 'SELECT * FROM users';
// prepare and execute the query 
$buildsq = $dbh->prepare($q);
$buildsq->execute();
// fetch the results and save them to $build var
$builds = $buildsq->fetchAll();
// check if their is results and print them 
if($buildsq->rowCount()) {
    foreach ($builds as $build) {
        echo '<option value="">' . $build['name'] . '</option>';
    }
} else {
    echo "<option>No results </option>";
}

它不是最好的,但是可以滿足您的需求。
嘗試將連接部分放入函數中以清理代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM