2010-11-01 90 views
1

我想要做的是显示从MySQL数据库中的所有字段名称的下拉列表,一旦用户选择一个并提交表单我想显示第二个下拉列表填充所有行从提交的字段名,这是我到目前为止的代码:从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

如果你正在创建一个从字段名称选择它似乎你应该正常化你的数据库 – Galen 2010-11-01 16:11:13

回答

0

现在,第二组选择将发布在您的</form>标记的外部,因此永远不会与表单的其余部分一起提交。充其量,您应该将表单结束标记移动到POST处理程序下面。

1

有上线人数29

$result1 = mysql_query("select '" . $fields . "' from `parts`") or die(mysql_error()); 
错误

你正在使用'而不是`。做如下

$result1 = mysql_query("select `" . $fields . "` from `parts`") or die(mysql_error()); 

希望你的问题解决了。

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