【问题标题】:Save mysql while loop data into arrays and then save into database将mysql while循环数据保存到数组中,然后保存到数据库中
【发布时间】:2015-04-21 13:59:15
【问题描述】:

首先我的道歉,这可能是一个可能重复的问题,我搜索并发现很少有人回答,但它们对我的情况不是很有帮助。

我有以下带有静态和动态值的表格

<input type="hidden" value="<?php echo $Quote ?>" id="amount" name="amount"/>
<input type="hidden" value="<?php echo $NoDays?>" id="total_days" name="total_days"/>   
<?php $sql = mysql_query("select * from tbloffers ORDER BY Sequence"); ?>
<?php while($rows = mysql_fetch_array($sql)) { ?>                       
<input type="hidden" value="<?php echo $rows['Id']; ?>" name="offerid[]" />
<input type="hidden" value="<?php echo $rows['Name']; ?>" name="offername[]" />
<input type="hidden" value="<?php echo $rows['Price']; ?>" name="offercharges[]" />                     
<?php } ?>                  
<input type="email" id="customeremail" name="customeremail" required/>

而我的 save.php 文件是

$date = date("j M, Y");
$total_days = mysql_real_escape_string($_POST["total_days"]);
$amount = mysql_real_escape_string($_POST["amount"]);
$customeremail = mysql_real_escape_string($_POST["customeremail"]);

$offerid = $_POST["offerid"];
$offername = $_POST["offername"];
$offercharges = $_POST["offercharges"];

当我点击提交时,我希望能够通过循环将所有这些值插入数据库。我尝试了 foreach 并挣扎。

注意:静态值将与动态值重复。 例如 $date, $amount 在插入时将保持不变。

$sql = "INSERT INTO table < What comes next?

提前致谢。

【问题讨论】:

  • 对于这些值(获取的带有循环行的值),只需创建一个分组名称数组,以便它们易于管理,并且可能是时候使用更新的 API、PDO 或 MySQLi

标签: php mysql arrays loops foreach


【解决方案1】:

您可以使用foreach 循环遍历重复输入之一,然后使用索引访问其他输入中的相应元素:

foreach ($offerid as $i => $offer) {
    $offer = mysql_real_escape_string($offer);
    $name = mysql_real_escape_string($offername[$i]);
    $charges = mysql_real_escape_string($offercharges[$i]);
    mysql_query("INSERT INTO table (date, total_days, amount, customer_email, offerid, offername, offfercharges)
                 VALUES ('$date', '$total_days', '$amount', '$customeremail', '$offer', '$name', $charges')");
}

附:你真的应该停止使用 mysql 扩展并升级到 mysqli 或 PDO,这样你就可以使用准备好的查询而不是字符串替换。

【讨论】:

  • 注意:未定义的变量:offerid 和警告:为 foreach() 提供的参数无效
  • 我不明白。您使用 $offerid = $_POST['offerid']; 分配了变量。
  • 是的,我刚刚意识到我错过了变量,可能我真的很累,谢谢它在我分配变量后就像魅力一样
猜你喜欢
  • 2019-05-13
  • 2018-08-30
  • 2012-09-29
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-30
  • 2012-03-21
  • 2014-01-12
相关资源
最近更新 更多