【问题标题】:Concat two fields into a dropdown menu将两个字段连接到下拉菜单中
【发布时间】:2013-06-24 09:53:25
【问题描述】:

我试图简单地显示表格中的两个字段,例如名字,姓氏,将它们组合并显示在可以选择的下拉菜单中,并与用户输入的其他数据一起存储。下面,适用于一个领域,但我正在努力组合姓氏,我尝试过 concat 但我认为我做错了。提前致谢。

//Drop Down Select
  $sql = "SELECT concat (firstname, lastname) as username  FROM users_tbl";
$result = pg_query($sql);
echo "<select name='firstname'>";

while ($row = pg_fetch_array($result)) {
 echo "<option value='" . $row['firstname'] . "'>" . $row['firstname'] ."</option>";

}
echo "</select>";
// close connection

【问题讨论】:

    标签: php sql concat


    【解决方案1】:

    试试这个方法:-

    $sql = "SELECT concat (firstname, lastname) as username  FROM users_tbl";
    $result = pg_query($sql);
    echo "<select name='firstname'>";
    
    while ($row = pg_fetch_array($result)) {
    echo '<option value="'.$row['username'].'" >'.$row['username'].'</option>';
    }
    echo "</select>";
    // close connection
    

    【讨论】:

    • 警告:pg_query() [function.pg-query]:查询失败:错误:/var/www/html/Test/rivers/RiverEnter 中字符 27 处不存在列“lastname”。 php 在第 36 行
    • 需要报价吗?第 36 行是 $sql 行
    【解决方案2】:

    要么依赖SQL...

    while ($row = pg_fetch_array($result)) {
        echo "<option value='" . $row['username'] . "'</option>";
    }
    

    或者不要在 SQL 中使用 CONCAT,而是使用 PHP:

    while ($row = pg_fetch_array($result)) {
        echo "<option value='" . $row['firstname'] . " " . $row['lastname'] ."'</option>";
    }
    

    但不要两者都做。

    【讨论】:

    • 我在原始帖子中的 concat 声明是否正确?您提供的第二个选项与我在谷歌搜索中尝试过的最相似。然而它没有用。
    • @Tom:对于第二个选项,将您的 SQL 更改为 SELECT firstname, lastname, xxx FROM ...,然后查看我的 PHP 示例中的微小变化(与您的相比)。关于 CONCAT 的语法,请参阅您的 DB 的手册。
    猜你喜欢
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2021-10-26
    • 2020-07-24
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多