PHP中的mysql select distinct查询 $sql=“从student\u main中选择不同的分支”; $result=mysql\u查询($sql); $row\u num=mysql\u num\u rows($result); $rows=mysql\u fetch\u数组($result); 回声“; 对于($i=0;$i

PHP中的mysql select distinct查询 $sql=“从student\u main中选择不同的分支”; $result=mysql\u查询($sql); $row\u num=mysql\u num\u rows($result); $rows=mysql\u fetch\u数组($result); 回声“; 对于($i=0;$i,php,select,drop-down-menu,distinct,Php,Select,Drop Down Menu,Distinct,您需要为每一行mysql\u fetch\u array()。仅为一行返回关联数组。只需将其包含在您的echo语句上方的for循环中即可 编辑:mysql\u fetch\u array()实际上返回一个数组(默认情况下),该数组具有关联索引和编号索引。不过,您可以继续以相同的方式使用它。您需要使用以下命令循环查询: $sql = "SELECT DISTINCT Branch FROM student_main"; $result = mysql_query($sql); $r

您需要为每一行
mysql\u fetch\u array()
。仅为一行返回关联数组。只需将其包含在您的echo语句上方的for循环中即可


编辑:
mysql\u fetch\u array()
实际上返回一个数组(默认情况下),该数组具有关联索引和编号索引。不过,您可以继续以相同的方式使用它。

您需要使用以下命令循环查询:

$sql = "SELECT DISTINCT Branch FROM student_main";
    $result = mysql_query($sql);
    $row_num = mysql_num_rows($result);
    $rows = mysql_fetch_array($result);
    echo "<select name='Branch'>";
    for($i=0;$i<=$row_num-1;$i++){
        echo "<option value='".$rows[$i]."'>".$rows[$i]."</option>";

    }
    echo "</select>";
    echo "<input type='submit' Value='submit' />";
    echo "</form>";
$sql=“从student\u main中选择不同的分支”;
$result=mysql\u查询($sql);
回声“;
虽然($rows=mysql\u fetch\u array($result)){//可能应该使用mysql\u fetch\u assoc()
回显“$rows['Branch']”;
}
回声“;
回声“;
回声“;
仅将当前数据集作为数组返回,并将内部指针向前移动。您需要反复调用
mysql\u fetch\u array
以获取所有结果

    $sql = "SELECT DISTINCT Branch FROM student_main";
    $result = mysql_query($sql);
    echo "<select name='Branch'>";
    while($rows = mysql_fetch_array($result)){ // should probably use mysql_fetch_assoc()
        echo "<option value='".$rows['Branch']."'>".$rows['Branch']."</option>";
    }
    echo "</select>";
    echo "<input type='submit' Value='submit' />";
    echo "</form>";
while($row=mysql\u fetch\u array($result)){
回显“$row['Branch']”;
}

使用while循环时,循环中出现问题:

while ($row = mysql_fetch_array($result)) {
    echo "<option value='".$row['Branch']."'>".$row['Branch']."</option>";
}
while($rows=mysql\u fetch\u array($result)){
回显“$rows[$i]”;
}

试试这个

你应该这样做:

while($rows=mysql_fetch_array($result)){ 

echo "<option value='".$rows[$i]."'>".$rows[$i]."</option>";

}
$sql=“从student\u main中选择不同的分支”;
$result=mysql\u查询($sql);
回声“;
while($row=mysql\u fetch\u数组($result)){
回显“$行[0]”;
}
回声“;
回声“;
回声“;

mysql\u fetch\u数组
将只返回第一行


有关详细信息,请参见:)

您真正需要的是学习如何使用模板。
但Stackoverflow似乎绝对不是一个可以学习网站开发专业方法的地方

首先获取您的数据

$sql = "SELECT DISTINCT Branch FROM student_main";
$result = mysql_query($sql);

echo "<select name='Branch'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='".$row[0]."'>".$row[0]."</option>";
}
echo "</select>";

echo "<input type='submit' Value='submit' />";
echo "</form>";
然后在模板中使用它

$select = $array();
$sql = "SELECT DISTINCT Branch FROM student_main";
$res = mysql_query($sql) or trigger_error(mysql_error().$sql);
while($row = mysql_fetch_array($res)) $select = $row[];


@囚犯:谢谢,当你复制粘贴的时候就会发生:)我对编程很陌生,这就是为什么我的代码完全是垃圾。但我正在学习。谢谢你的建议。你建议使用而不是@Drewdin是的,我建议。它看起来很整洁,不是吗?@Col.是的,使用或有什么规则吗?谢谢@德鲁丁:不,这只是口味的问题。大多数开发人员都同意这种语法特别适合模板。我认为它可以立即获取完整的数组。我错了吗?你能解释一下吗。Thanksit一次只取一行。您需要再次调用它以获取另一行。如果我们希望在满足两个条件的情况下获取多个不同的值,那么如何修改此处的sql命令。(如分数=50,等级=b)
<form>
<select name='Branch'>
<? foreach($select as $row): ?>    
  <option value="<?=htmlspecialchars($row['Branch'])?>">
    <?=htmlspecialchars($row['Branch'])?>
  </option>
<? endforeach ?>    
</select>
<input type='submit' Value='submit' />
</form>