2010-11-01 88 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