从mysql数据填充的动态下拉列表

时间:2010-11-01 16:06:04

标签: php mysql html dynamic drop-down-menu

我正在尝试做的是显示一个带有来自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>';
}

任何人都可以找到我出错的地方,谢谢

3 个答案:

答案 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