从数据库行获取数据并填充select标记

时间:2015-10-09 14:10:31

标签: php html database select

快速提问。所以我需要做的是用我的表中的行填充我的html droplist。我可以为一个html droplist这样做,但是当我用另一个html droplist执行此操作时,它就成了一个问题。你不能两次使用mysql_fetch_array。有什么建议?

以下是我参考的示例代码。

    query = mysql_query("YOUR QUERY HERE"); // Run your query

echo '<select name="DROP DOWN NAME">'; // Open your drop down box

// Loop through the query results, outputing the options one by one
while ($row = mysql_fetch_array($query)) {
   echo '<option value="'.$row['something'].'">'.$row['something'].'</option>';
}

echo '</select>';// Close your drop down box

3 个答案:

答案 0 :(得分:0)

选项1: 使用以下代码。请阅读此document

while($row = mysql_fetch_array($query)){
   // Your code..
}

// add this line
mysql_data_seek($query, 0);

while($row = mysql_fetch_array($query)){
   // Your code..
}
  

mysql_data_seek()将与指定结果标识符关联的MySQL结果的内部行指针移动到指向指定的行号。

选项2: 您可以将mysql_fetch_array($query)存储在一个阵列中并重复使用。

$sample_array = mysql_fetch_array($query);
while($row = $sample_array){
   // Your code..
}
while($row = $sample_array){
   // Your code..
}

答案 1 :(得分:0)

从我这边简单的解决方案,编写一个将采用两个数组并填充Dropdown的方法。

function populateDropDown($values,$displayArray, $nameDropdon){
echo "<select name='$nameDropdon'>"; // Open your drop down box

// Loop through the query results, outputing the options one by one
for($i=0;i<count($values);$i++)
   echo '<option value="'.$values[$i].'">'.$displayArray[$i].'</option>';

echo '</select>';
}

答案 2 :(得分:0)

请勿使用已弃用的函数,请尝试使用MySQLi或PDO。如果需要从数据库中调用返回元素,只需创建一个数组来存储它,并根据需要多次使用foreach。

$query = mysql_query("YOUR QUERY HERE") or die(mysql_error());

$items = array();
while ($row = mysql_fetch_array($query)) {
    $items[] = $row;
}


echo '<select name="DROP DOWN NAME">';
foreach($items as $item){
    printf('<option value="%d">%s</option>', $item['id'], $item['description']);
}
echo '</select>';