我正在尝试做的是显示一个带有来自mysql数据库的所有字段名称的下拉列表,一旦用户选择一个并提交表单我想显示第二个下拉列表,其中填写了提交的字段名称中的所有行,到目前为止,这是我的代码:
$result = mysql_query("select * from `parts`") or die(mysql_error());
echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
echo "<select name='field_names'>";
$i = 0;
while ($i < mysql_num_fields($result)) {
$fieldname = mysql_field_name($result, $i);
echo '<option value="'.$fieldname.'">'.$fieldname.'</option>';
$i++;
}
echo "</select>";
echo "<input type='submit' value='submit'></input>";
echo "</form>";
if($_POST) {
$fields = $_POST['field_names'];
$result1 = mysql_query("select '".$fields."' from `parts`") or die(mysql_error());
echo '<select name="fields">';
while ($row = mysql_fetch_array($result1)) {
echo "<option value=".$row[$fields].">".$row[$fields]."</option>";
}
echo '</select>';
}
任何人都可以找到我出错的地方,谢谢
答案 0 :(得分:1)
第29行有错误
$result1 = mysql_query("select '" . $fields . "' from `parts`") or die(mysql_error());
你正在使用'而不是'。请执行以下操作
$result1 = mysql_query("select `" . $fields . "` from `parts`") or die(mysql_error());
希望你的问题得到解决。
答案 1 :(得分:0)
现在,第二组选择将在</form>
标记的外部发布,因此永远不会与表单的其余部分一起提交。最多,您应该将表单结束标记移动到POST处理程序下面。
答案 2 :(得分:0)
here database details
mysql_connect('hostname', 'username', 'password');
mysql_select_db('database-name');
$sql = "SELECT username FROM userregistraton";
$result = mysql_query($sql);
echo "<select name='username'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['username'] ."'>" . $row['username'] ."</option>";}
echo "</select>";
here username is the column of my table(userregistration)
it works perfectly