正如您在此代码中看到的,我通过从数据库中的表中选择模型来创建表。 但是,我将选择查询的返回值与主列这个表,并把它放到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