2012-08-25 55 views
1

我正在使用room_extras表的主鍵爲我的額外文本字段創建唯一的名稱。如何使用主鍵的值獲取數組的值

這裏的例子:

<tr> 
    <td><?php echo $extrasInfo['description'] ?></td> 
    <td> 
     <input type="text" name="extra[<?php echo $extrasInfo['re_id'] ?>]" id="qty" value="0" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)" /> 
    </td> 
    <td align="right"><?php echo number_format($extrasInfo['price'],2) ?></td> 
</tr> 

正如你所看到的名稱使用此代碼extra[<?php echo $extrasInfo['re_id'] ?>]生成。

的這個HTML中的結果是:

<tr> 
    <td colspan="3"><h3>Economy Room</h3></td> 
</tr> 
<tr> 
    <td>Extra Person</td> 
    <td><input type="text" name="extra[19]" id="qty" value="1" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"></td> 
    <td align="right">560.00</td> 
</tr> 
<tr> 
    <td>Breakfast for Extra Person</td> 
    <td><input type="text" name="extra[20]" id="qty" value="1" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"></td> 
    <td align="right">150.00</td> 
</tr> 
<tr> 
    <td colspan="3"><h3>Deluxe</h3></td> 
</tr> 
<tr> 
    <td>Extra Person</td> 
    <td><input type="text" name="extra[1]" id="qty" value="0" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"></td> 
    <td align="right">730.00</td> 
</tr> 
<tr> 
    <td>Breakfast for Extra Person</td> 
    <td><input type="text" name="extra[2]" id="qty" value="0" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"></td> 
    <td align="right">269.00</td> 
</tr> 

根據re_id場(即$extrasInfo['re_id'])數組的返回值就像一個不同的密鑰:

extra[19] 
extra[20] 
extra[1] 
extra[2] 

所以我的問題是如何「額外」之後我會得到這個值嗎?也就是說,數字19,20,1,和2

這裏是我已經開始:

$size = count($_POST['extra']); 

$i = 0; 
while ($i < $size) { 
    $qty = $_POST['extra'][$i]; 
    $re_id = ????; //what should be the code here? 

    $query = "$sql_extras="INSERT INTO `lf_bookings_extras`(`re_id`, `booking_number`, `price`, `qty`, `amount`) VALUES ('$re_id','$booking_number','$price','$qty','$amount')";"; 

    mysql_query($query) or die ("Error in query: $query"); 

    ++$i; 
} 

回答

2

你不應該命名您從表單輸入extra陣列,這樣你可以循環數組中。

$re_id = $_POST['extra'][$i]; 

和HTML

<input type="text" name="extra[]" id="qty" value="1" style="text-align: right" size="5" onKeyPress="return isNumberKey(event)"> 

,或者如果你真的想這樣做

foreach($_POST['extra'] as $key => $val){ 
    $qty = $val; 
    $re_id = $key; 
    // $key will be the id passed from input 
    // mysql insert 
} 

PS:請不要使用新代碼mysql_*功能。他們不再維護,社區已開始deprecation process。查看red box?相反,您應該瞭解prepared statements並使用PDOMySQLi。如果你不能決定,this article將有助於選擇。如果你在意學習,here is a good PDO tutorial

+0

嗨,我想你不明白我的問題。在上面的html輸出中,我有不同的房間類型,如經濟室和豪華。每種房型都有「額外人員」和「額外人員早餐」等額外設施。所以我需要根據它的主鍵每個額外的價值。這是一個額外的豪華與經濟房的額外價值不同。 – jaypabs

+0

總之我需要傳遞'$ extrasInfo ['re_id']' – jaypabs

+0

的值更新了我的回答 –