正如您在此代碼中看到的,我通過從數據庫中的表中選擇模型來創建表。 但是,我將選擇查詢的返回值與主列這個表,並把它放到while循環,所以它一直產生行,直到與選擇查詢來的模型完成 現在我得到了一個問題,當我試圖讓這個模型在$ _Post [''] supergloble它保持只發送我從循環中獲取的最後一個值 我的問題是如何從此循環中獲取每個值以便在我的數據庫中的單個插入查詢中使用它?無法從while循環中獲取值php
對不起,對不起英語:S!
<form class="form-signin" action="<?php $_SERVER['PHP_SELF'];?>" method="Post">
<?php
$models = mysql_query("SELECT `Model_Name` FROM `models` WHERE `Brand` = 20");
while($row = mysql_fetch_array($models))
{
echo '
<tr>
<td><input type="text" name="mode[]" value="'.$row['Model_Name'].'"></td>
<td><input type="text" name="sellout[]" value=""></td>
<td><input type="text" name="shelfshare[]" value=""></td>
<td><input type="text" name="price[]" value=""></td>
<td><input type="text" name="Shortage[]" value=""></td>
<td><input type="text" name="Inventory[]" value=""></td>
</tr>
';
}
?>
</form>
插入腳本
$date = date("Y-m-d");
foreach($_POST['mode'] as $key => $mode){
$sellout = $_POST['sellout'][$key];
$shelfshare = $_POST['shelfshare'][$key];
$price = $_POST['price'][$key];
$shortage = $_POST['shortage'][$key];
$inventory = $_POST['inventory'][$key];
mysql_query("INSERT INTO `smartdailyreport`(`SFO_Code`, `Model`, `Sell_Out`, `Shelf_Share`, `Price`, `Shortage`, `Inventory`, `Date`) VALUES ('".mysql_real_escape_string($_SESSION['idd'])."','".mysql_real_escape_string($mode)."','".mysql_real_escape_string($sellout)."','".mysql_real_escape_string($shelfshare)."','".mysql_real_escape_string($price)."','".mysql_real_escape_string($shortage)."','".mysql_real_escape_string($inventory)."','".mysql_real_escape_string($date)."')") or die(mysql_error());
}
'$ POST'可能會引發錯誤未定義的變量 - 更好地修復它:'$ _POST' –
也,把你的插入查詢的'foreach'循環內,否則你每次迭代時重寫你的值 –
在你編寫任何**更多的SQL代碼之前,你必須閱讀[SQL注入漏洞](http://bobby-tables.com/)和[正確轉義](http ://bobby-tables.com/php)。在未來的版本中,'mysql_query'也將被從PHP中刪除,因爲它很容易被濫用。 [PDO不難學習](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)並且使寫起來更容易正確逃避查詢。 – tadman