Php 将mysql列转换为数组并在下拉列表中使用该数组
长时间侦听器,第一次调用。我在从一个名为“花名册”的mysql表中提取一个名为“Rep_IP”的列,将其转换为一个数组,然后使用该数组填充html中的下拉列表时遇到了问题。我已经尝试了这里列出的几个建议以及其他地方,我没有任何运气。页面显示得很好,但下拉菜单没有选项可供选择。我想我会看看你们是否能告诉我我做错了什么Php 将mysql列转换为数组并在下拉列表中使用该数组,php,html,mysql,arrays,drop-down-menu,Php,Html,Mysql,Arrays,Drop Down Menu,长时间侦听器,第一次调用。我在从一个名为“花名册”的mysql表中提取一个名为“Rep_IP”的列,将其转换为一个数组,然后使用该数组填充html中的下拉列表时遇到了问题。我已经尝试了这里列出的几个建议以及其他地方,我没有任何运气。页面显示得很好,但下拉菜单没有选项可供选择。我想我会看看你们是否能告诉我我做错了什么 <html> <body> <form action="insert.php" method="post"> <p>Rep ID:&
<html>
<body>
<form action="insert.php" method="post">
<p>Rep ID:</p>
<?php
$con = mysql_connect("localhost", "root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("rep_stats", $con);
$query = "SELECT Rep_ID FROM roster";
$result = mysql_query($query) or die ("no query");
$result_array = array();
echo "$query"
while($row = mysql_fetch_assoc($result))
{
$result_array[] = $row;
}
?>
<select name="Rep_ID">
<?php
foreach($result_array as $rep)
{
echo "<option value=" . $rep['Rep_ID'] . ">" . $rep['Rep_ID'] . "</option>";
}
?>
</select>
Issues Handled: <input type="number" name="IssuesHandled">
Hours Worked: <input type="number" step="any" name="HoursWorked">
<input type="submit">
</form>
</body>
</html>
代表ID:
处理的问题:
工作时间:
如您所见,下拉列表是表单的一部分,用于在新表中创建条目。我不知道这是否有区别,但我想我会指出这一点 试试这个
<select name="Rep_ID">
<?php
while($row = mysql_fetch_assoc($result))
{
echo "<option value=" . $row['Rep_ID'] . ">" . $row['Rep_ID'] . "</option>";
}
?>
</select>
试试这个:
<?php
function select_list(){
$host = "host";
$user = "user";
$password = "password";
$database = "database";
$link = mysqli_connect($host, $user, $password, $database);
IF (!$link)
{
echo ('Could not connect');
}
ELSE {
$query = "SELECT Rep_ID FROM roster";
$result = mysqli_query($link, $query);
while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
echo "<option value=" . $row['Rep_ID'] . ">" . $row['Rep_ID'] . "</option>";
}
}
mysqli_close($link);
}
$begin_form =
<<< EODBEGINFORM
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Insert data </title></head>
<body>
<form action="insert.php" method="post" name="form1">
<p>Rep ID:</p>
<select name="reps" form="form1">
EODBEGINFORM;
$end_form =
<<< EODENDFORM
</select><br>
Issues Handled: <input type="text" size="12" name="IssuesHandled"><br>
Hours Worked: <input type="text" size="12" name="HoursWorked"><br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
EODENDFORM;
echo $begin_form;
echo select_list();
echo $end_form;
?>
您会注意到,我使用了MYSQLI_uuiSteadof MYSQL_uuu,原因是这对于新代码更好,请参见上面的注释
我调试了您的代码,并运行了一系列的问题。:-(主要问题是:echo“$query”
您忘记了行末尾的分号
祝您项目顺利。1.行
echo“$query”末尾缺少分号
.2.将值放入数组是一个不必要的步骤。在遍历结果集时呈现您的选项,就像Ian建议的那样。请不要在新代码中使用mysql_*函数。它们是。相反,请了解并使用or。就我个人而言,我喜欢假装做mysql的人和做php的人是两个不同的p人们。mysqler只是简单地给phper一个数组,他们可以在任何他们喜欢的地方使用。所以对我来说,数组构建步骤非常好。首先在这行后面添加一个;echo“$query”.B.T.W.你为什么要回显这个查询。或者这只是为了测试代码?我想这会给你的表单标签带来麻烦。谢谢。这工作做得很好。至于所有的错误,我是mysql的不速之客,我感谢你的建设性反馈。我现在将所有其他代码都改成mysqli。@Kevin我很高兴我能够帮助你你能接受我的答案吗?请在答案的左边打勾。谢谢。