使用相同的mysql查询填充多个下拉列表

我有一些表格,里面有数字1-5的投递箱。 我可以使用此代码填充下拉列表,但是想知道我是否可以某种方式只调用db一次,但填充所有使用相同数字的下拉列表?

query($sql); if (!$conn->query($sql)) { echo "query failed: (" . $mysqli->errno . ") " . $mysqli->error; } echo '' ; while($row = $result->fetch_assoc()){echo ''.$row['riskNumDrop'].'';} ?>  

所以理想情况下,我生成一次输出并重复使用多次。 我猜一个数组($ result已经是)但是我如何填充它的下拉? TIA

保存为字符串可以节省您必须循环生成多次相同输出的相同数据的处理。 如果这是您想要的,您可以执行以下操作。

更换:

 echo ' 

有:

 $drop = ''; 

然后,如果你愿意,你可以多次echo $drop


如果由于某种原因你想要不同的选择属性,你可以只保存选项列表并打印选择,如下所示:

 $dropOptions = ""; while($row = $result->fetch_assoc()){ $dropOptions .= ''; } 

然后echo '

您可以将数据存储到数组中,然后通过枚举数组来打印数据。

 $risks = array(); // Load values into array. while ($row = $result->fetch_assoc()) { array_push($row['riskNumDrop']); } // Drop down #1 echo ''; // Drop down #2 echo ''; 

只需使用fetch_all方法将结果放入数组中。 它将结果集中的所有行返回到关联或数字数组中。 你可以用这样的数组做任何你想做的事情:

 $result = $conn->query('SELECT * FROM riskNumDrop'); if (!$result) { echo "query failed: (" . $mysqli->errno . ") " . $mysqli->error; exit; // fetch_* functions cannot be called on error (sice $result is false) } // get all rows from the result $rows = $result->fetch_all(MYSQLI_ASSOC); // output first dropdown... echo ''; // output second dropdown... echo '';