php - 如何仅显示从数据库中获取的数据的名称?

标签 php mysql pdo

我已经使用数据库中的信息创建了此表,但现在我必须创建一个包含值的选择框,以便我只能显示名称。我应该使用 if 语句来执行此操作吗?

<?php
try {
    $con = new PDO('mysql:host=localhost;dbname=snm', "root", "");
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $query = "SELECT ID,Voornaam,Achternaam,Woonplaats,Postcode,Email,Social,Soort,Categoriebord,Categoriegame FROM gebruiker";
    print "<table>";
    $result = $con->query($query);
    $row = $result->fetch(PDO::FETCH_ASSOC);
    print " <tr>";
    foreach ($row as $field => $value) {
        print " <th>$field</th>";
    }
    print " </tr> ";
    $data = $con->query($query);
    $data->setFetchMode(PDO::FETCH_ASSOC);
    foreach ($data as $row) {
        print " <tr> ";
        foreach ($row as $name => $value) {
            print " <td>$value</td> ";
        }
        print " </tr> ";
    }
    print "</table> ";

} catch (PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}
?>

最佳答案

我对您的代码进行了一些修改,我添加了几个方法,这些方法将分别为您提供属性和具有值的属性

此方法将返回带有属性的值

function getValues($con, $query)
{
....
}

此方法只会获取属性

function getKeys($con, $query)
{
...
}

它将返回如下属性:

Array
(
    [0] => ID
    [1] => Voornaam
    [2] => Achternaam
    [3] => Woonplaats
    [4] => Postcode
    [5] => Email
    [6] => Social
    [7] => Soort
    [8] => Categoriebord
    [9] => Categoriegame
)    

您可以显示索引如 <option value="$row[0]">$row[0]</option> 的属性对于属性 ID

我希望这对您有帮助,只需用此替换您的代码

function getKeys($con, $query)
{
    $result = $con->query($query);
    $row = $result->fetch(PDO::FETCH_ASSOC);
    return array_keys($row); // This will fetch the keys from an array
}

function getValues($con, $query)
{
    $data = $con->query($query);
    $data->setFetchMode(PDO::FETCH_ASSOC);

    return $data;
}

try {
    $con = new PDO('mysql:host=localhost;dbname=snm', "root", "");
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $query = "SELECT ID,Voornaam,Achternaam,Woonplaats,Postcode,Email,Social,Soort,Categoriebord,Categoriegame FROM gebruiker";

    //Select Box
    $data = getKeys($con, $query);
    print '<select>';
    foreach ($data as $row) {
        print " <option value='".$row[0]."'>".$row[0]."</option>"; // ID
        print " <option value='".$row[1]."'>".$row[1]."</option>"; // Voornaam
        print " <option value='".$row[2]."'>".$row[2]."</option>"; // Achternaam
    }
    print '</select>';


    //Title
    print "<table>";
    $array_keys = getKeys($con, $query);

    print " <tr>";
    foreach ($array_keys as $value) {
        print " <th>$value</th>";
    }
    print " </tr> ";

    //Values
    $data = getValues($con, $query);
    foreach ($data as $row) {
        print " <tr> ";
        foreach ($row as $name => $value) {
            print " <td>$value</td> ";
        }
        print " </tr> ";
    }
    print "</table> ";

} catch (\PDOException $e) {
    throw new \PDOException($e->getMessage(), (int)$e->getCode());
}

关于php - 如何仅显示从数据库中获取的数据的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56481682/

相关文章:

php - 如何在php中插入sql查询时显示正确的消息?

php - CRUD 和 OOD。如何解决这个问题?

php - 如何显示 PDO 创建的查询的全文?

php - 保护 CSV 文件的 SQL 插入免受 SQL 注入(inject)

php - PDO如何强制将值更新为int

php - 在 Admin Dashboard Stats Widget 中添加自定义订单状态

php - 用于查看所有产品页面的 Opencart seo url

php - 以编程方式将可用性添加到 Woocommerce Bookings 上的可预订产品

php - 如何访问JSON对象并插入数据库

mysql - SQL 查询选择多行