我想在selectbox中显示Mysql表的归档值。我尝试了以下代码来显示。 但它通常在echo函数中显示指定的字段值,而不是在select框中。我不知道我错在哪里。
$con = mysql_connect("localhost","root","root");
$db = mysql_select_db("Time_sheet",$con);
$get=mysql_query("SELECT Emp_id FROM Employee");
while($row = mysql_fetch_assoc($get))
{
echo ($row['Emp_id']."<br/>");
}
<html>
<body>
<form>
<select>
<option value = "<?php echo($row['Emp_id'])?>" ><?php echo($row['Emp_id']) ?></option>
</select>
</form>
</body>
</html>
此外,字段值必须按升序显示。如何实现..
答案 0 :(得分:15)
<?php
$con = mysql_connect("localhost","root","root");
$db = mysql_select_db("Time_sheet",$con);
$get=mysql_query("SELECT Emp_id FROM Employee ORDER BY Emp_id ASC");
$option = '';
while($row = mysql_fetch_assoc($get))
{
$option .= '<option value = "'.$row['Emp_id'].'">'.$row['Emp_id'].'</option>';
}
?>
<html>
<body>
<form>
<select>
<?php echo $option; ?>
</select>
</form>
</body>
</html>
PS:在旁注中,请停止使用mysql_*
个功能。看看this主题的原因。
答案 1 :(得分:2)
你可以像这样轻松地做到这一点
$con = mysql_connect("localhost","root","root");
$db = mysql_select_db("Time_sheet",$con);
$get=mysql_query("SELECT Emp_id FROM Employee");
<html>
<body>
<form>
<select>
<option value="0">Please Select</option>
<?php
while($row = mysql_fetch_assoc($get))
{
?>
<option value = "<?php echo($row['Emp_id'])?>" >
<?php echo($row['Emp_id']) ?>
</option>
<?php
}
?>
</select>
</form>
</body>
</html>
答案 2 :(得分:0)
您必须使用while循环才能在选择框中显示选项。试试这个...
$con = mysql_connect("localhost","root","root");
$db = mysql_select_db("Time_sheet",$con);
$get=mysql_query("SELECT Emp_id FROM Employee order by Emp_id");
<html>
<body>
<form>
<select>
<?php
while($row = mysql_fetch_assoc($get))
{
?>
<option value="<?php echo $row['Emp_id']; ?>"><?php echo $row['Emp_id']; ?></option>
<?php
}
?>
</select>
</form>
</body>
</html>
答案 3 :(得分:0)
<?php
$con = mysql_connect("localhost","root","root");
$db = mysql_select_db("Time_sheet",$con);
$get=mysql_query("SELECT Emp_id FROM Employee");
?>
<html>
<body>
<form>
<select>
<?php
while($row = mysql_fetch_assoc($get)){?>
<option value = "<?php echo($row['Emp_id'])?>" ></option>
<?php } ?>
</select>
</form>
</body>
答案 4 :(得分:0)
<?php
$con = mysql_connect("localhost","root","root");
$db = mysql_select_db("Time_sheet",$con);
$res=mysql_query("SELECT Emp_id FROM Employee");
?>
<html>
<body>
<form>
<select>
<?php
while ($row = $res->fetch_assoc())
{
echo '<option value=" '.$row['id'].' "> '.$row['name'].' </option>';
}
?>
</select>
<form>
</body>
</html>
答案 5 :(得分:0)
有一些技巧可以浓缩该任务的代码块-太多了,只能在已接受的答案下进行注释。
经过测试的代码:
if (!$con = new mysqli("localhost", "root", "root", "Time_sheet")) {
echo "Database Connection Error: " , $con->connect_error; // don't show actual error in "production" stage
} elseif (!$result = $con->query("SELECT Emp_id FROM Employee ORDER BY Emp_id")) {
echo "Syntax Error: " , $con->error; // don't show actual error in "production" stage
} else {
echo "<select>";
foreach ($result as $row) {
echo "<option>{$row['Emp_id']}</option>";
}
echo "</select>";
}
if
行既声明了$con
,又一步检查了它的假返回值。elseif
行既声明了$result
,又一步检查了它的假返回值。else
块将处理成功执行SELECT查询后生成的零或更多数据行。foreach()
对其进行迭代,并可以通过关联键直接访问行数据。 PHP Manual Reference Another StackOverflow Post value
之间的文本)不同,则仅需要在<option>
标记内写入<option>the text in here</option>
属性。如果您省略多余的value
属性,则表单提交和javascript实现都将以相同的方式工作。如果您希望在选择字段而不是文本中提交其他值,则语法如下所示:
echo "<option value=\"{$row['Emp_id']}\">{$row['Emp_name']}</option>";
如果您要基于预先存在的变量(例如selected
)在其中一个选项上写一个$selected_id
属性,它看起来应该像这样:
echo "<option" , ($row['Emp_id'] == $selected_id ? " selected" : "") , ">{$row['Emp_name']}</option>";
如果您想将前面的两个过程结合起来,它看起来可能像这样:
echo "<option value=\"{$row['Emp_id']}\"" , ($row['Emp_id'] == $selected_id ? " selected" : "") , ">{$row['Emp_name']}</option>";