2014-05-22 22 views
1

我試圖從選擇標記 中選擇該項目,然後通過隱藏輸入發佈它,以便將其插入到具有項目名稱的另一個表中。如何從mysql_fetch_assoc捕獲變量

在我要插入的項目的名稱。換句話說以及相應的ID:

<form action="interface.php" method="post"> 
    Equipment: <select name="equipment"> 
    <option value="0">Выберите оборудование</option> 
    <?php 
    $res = mysql_query('select `equipment_id`,`name`,`ip_adress` from `equipment`'); 
    while($row = mysql_fetch_assoc($res)){ 
     do 
     {    
    printf("<option>%s</option>",$row['name']); 
    $equipment_id = $row['equipment_id']; 
    while ($row=mysql_fetch_array($res)); 
    } 
    ?> 
    </select> 
    <input type="hidden" name="equipment_id" value="<?php echo $equipment_id;?>" /> 

Interface.php處理程序:

<?php 
    include("connect.php"); 

    $val1 = $_POST['equipment']; 
    $val2 = $_POST['equipment_id']; 
    $val3 = $_POST['vlan']; 
    $val4 = $_POST['vlan_id']; 
    $val5 = $_POST['name']; 
    $val6 = $_POST['description']; 


    mysql_select_db("ADRESSA") or die("Could not select database"); 

    $result_insert = mysql_query ("INSERT INTO `ADRESSA`.`interface` (`equipment`, `equipment_id`, `vlan`,`vlan_id`,`name`,`description`) 
    VALUES ('$val1','$val2','$val3','$val4','$val5','$val6');") 
      or die ("<b>Query failed:</b> " . mysql_error()); 

    if ($result_insert== 'true') 
    { 
    echo "1 record added"; 
    header('Location: http://192.168.0.1/find/1/show_interface.php'); 
    } 
    else{echo "try again"; 
    } 
    mysql_close(); 

    ?> 

的問題是,該值僅正確插入首先,在下一次查詢期間,它只是添加相同的值。

此致敬禮!

+0

1.永遠不要信任用戶輸入2.您很容易發生SQL注入3.您正在使用不贊成使用的API。所有3個都可以使用準備好的語句來解決 – asprin

+0

好吧,在現階段它並不是非常重要,我真正正在努力的是如何使這項工作成爲 – user3663497

+0

你的隱藏領域在任何循環之外。只有循環的最後值存儲在那裏。如果您需要存儲「選定」選項的值,那麼我認爲您可能需要一些JavaScript代碼。如果你的意思是別的,請澄清。 – andrew

回答

0

我建議的形式,側輸出變成是這樣的:

<select id="selEquipmentId" name="equipment_id"> 
    <option value="0">Выберите оборудование</option> 
    <option value="1">Some Equipment Name (with the ID set in the value attribute)</option> 
    <!-- 
    ... more options using the same patern 
    --> 
</select> 

<!-- this hidden input element should contain the equipment name of the selected option --> 
<input type="hidden" id="selEquipment" name="equipment" value="Выберите оборудование" /> 

然後使用一些javascript和JQuery magic包括在同一頁上下面的腳本。如果你還沒有,也可以include JQuery

<script> 
$('#selEquipmentId').on('change', function() { 
    $('#selEquipment').val($('#selEqiupmentId option:selected').text()); 
}); 
</script> 

最後一個建議:使用一個循環來創建的選項。現在你在while循環中使用了「do while」循環(並且據我所知,while循環只執行一次)。這隻會造成混亂。