php mysql选择下拉列表选择和不同的查询

时间:2010-10-14 14:10:34

标签: php mysql

我在这里很困惑。

$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。它的工作,任何想法为什么?

3 个答案:

答案 0 :(得分:0)

如果你没有明确暗示“as”列名,但是如果没有做PHP,但是知道引擎有时会如何构成列名,那么它可能会使用不同的东西,例如

选择DISTINCT p为DISTINCT_P

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

您可能想尝试

选择DISTINCT P P

因此隐含的结果列名称为“P”并且符合您的其他常规。

答案 1 :(得分:0)

我的第一反应是你的问题的解决方案是在你的第一个查询中添加DISTINCT。

答案 2 :(得分:0)

认为这是查询,现在我不认为是......而是你选择的$变量。在实际

之前,它没有被声明
if($row['p'] == $row_n['p']) { 
        $selected = " selected";  
    } 

你可能需要“否则”这个并设置

$ selected =“”;

所以当你在构建OPTIONS列表时尝试在下面的字符串构建中将它连接起来时,它不会是一个不存在的变量。