使用 MySQL 和 PHP 从 PDO 函数返回<选项>标签


Return <option> tags from PDO function using MySQL and PHP

我有以下函数:

function getSystemNames($dbh, $myid) {
    $sql = $dbh->prepare('
    SELECT system_name 
    FROM product_systems
    WHERE user_id = :myid
    ORDER BY `system_name` ASC
    ');
    $sql->bindValue('myid', $myid);
    $sql->execute();
    return $sql;
}
;

然后,我将以下代码与我的HTML混合在一起:

<select id='group' class='select' name='group'><option value='000'>None</option>
        <?php
        $results = getSystemNames($dbh, $myid);             
        while ($row1 = $results->fetch(PDO::FETCH_ASSOC)){              
          echo "<option value='$row1[system_name]'>$row1[system_name]</option>";
        }
        ?>
</select>

我正在尝试合并两者,所以我的 HTML 中没有那么多代码,但在过去的一个小时里我无法弄清楚,正在寻求社区的帮助。我尝试无济于事:

function getSystemNames($dbh, $myid) {
    $sql = $dbh->prepare('
    SELECT system_name 
    FROM product_systems
    WHERE user_id = :myid
    ORDER BY `system_name` ASC
    ');
    $sql->bindValue('myid', $myid);
    $sql->execute();
    while ($row1 = $sql->fetch(PDO::FETCH_ASSOC)) {                 
        return "<option value='$row1[system_name]'>$row1[system_name]</option>";
    }
}
;
function getSystemNames($dbh, $myid) {
    $sql = $dbh->prepare('
    SELECT system_name 
    FROM product_systems
    WHERE user_id = :myid
    ORDER BY `system_name` ASC
    ');
    $sql->bindValue('myid', $myid);
    $sql->execute();
    $result = $sql->fetchAll(); <----- fetch All the data
    return $result;
}

它将返回一个多维数组。 然后在 HTML 部件中使用foreach来获得所需的输出。

附言在这里}后你不需要;

您必须在 while 循环

外部创建一个临时变量,并在 while 循环内连接它。然后返回临时变量。并做echo getSystemNames(..)