繁体   English   中英

PHP的MySQL选择下拉列表选择和不同的查询

[英]php mysql select dropdown selected and distinct query

我在这里很困惑。

$sql_n = mysql_query("SELECT * FROM table1 WHERE n='{$row['n']}'");
$row_n = mysql_fetch_array($sql_n);

$sql= mysql_query("SELECT DISTINCT p FROM table1");
while($row = mysql_fetch_array($sql)) { 

    if($row['p'] == $row_n['p']) {
        $selected = " selected"; 
    }

    $np .= "<option value='{$row['p']}'$selected>{$row['p']}</option>"; 
}

当我使用查询SELECT DISTINCT p$selected不起作用,但是如果我使用SELECT p 它的工作原理,为什么?

如果不做PHP,但是如果不明确暗示“ as”列名,则知道引擎有时会如何构成列名,这可能是在做一些与众不同的事情,例如

选择DISTINCT p作为DISTINCT_P

因此结果查询中的列名“ p”不存在。

您可能要尝试

选择DISTINCT PP

因此,隐含的结果列名称为“ P”,并限定例程的其余部分。

我的第一个反应是,解决您的问题的方法也是在第一个查询中添加DISTINCT。

认为这是查询,现在我不认为是...而是您的$ selected变量。 直到实际的任何地方都没有宣布

if($row['p'] == $row_n['p']) { 
        $selected = " selected";  
    } 

您可能需要“其他”并设置

$ selected =“”;

因此,当您在构建OPTIONS列表时尝试在下面的字符串构建中隐藏它时,将不会存在不存在的变量,这将使它失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM