我在这里很困惑。
$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
。它的工作,任何想法为什么?
答案 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列表时尝试在下面的字符串构建中将它连接起来时,它不会是一个不存在的变量。