1
我有一個從數據庫(Controller.php這樣)來到一個表....更新多行到一個MySQL表使用PHP數組
<?php
class masterClass
{
public $db_host = "127.0.0.1";
public $db_user = "root";
public $db_pass = "";
public $db_name = "bachelor_bd";
public $db;
public function __construct()
{
try
{
$this->db = new PDO("mysql:host={$this->db_host};dbname={$this->db_name}", $this->db_user, $this->db_pass);
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
$e->getMessage();
}
}
public function bazar_deposit_show_parson($bid)
{
$sql = $this->db->prepare("SELECT * FROM `bachelor_member` WHERE bachelor_id=:bid");
$sql->execute(array(':bid' => $bid));
while ($data = $sql->fetch(PDO::FETCH_ASSOC))
{
echo "<div class='float_left col-10'>
<div class='user-title col-3'><strong>$data[name]</strong></div>
<div class='user-title col-2'>
<input type='text' id='boxthree' name='deposit[]'>
</div>
<input type='hidden' name='mmid[]' value='$data[id]'>
<div class='edit col-1'><button type='submit' name='start_depo' class='btn btn-warning btn-lg btn-block'>Save</button>
</div>
</div>";
}
}} ?>
而且聽到的是帖子頁
<?php
// Header Area Goes Hear
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "../layout/header.php");
if (isset($_POST['submit']))
{
$row_data_id = array();
foreach($_POST['mmid'] as $row=>$mmid)
{
$mmid= $mmid;
$row_data_id[] = $mmid;
}
$row_data_deposit = array();
foreach($_POST['deposit'] as $row=>$deposit)
{
$deposit= $deposit;
$deposit= ($_POST['deposit'][$row]);
$row_data_deposit[] = $deposit;
}
$bachelor->update_bazar_deposit($row_data_id,$row_data_deposit);
if($bachelor)
{
echo "Update Successful"
}
}
//Bachelor Zone Left Sidebar
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "../layout/sidebar.php");?>
<div class="user-form post-block col-6">
<form action="bazar_deposit.php?b_zone=<?php $_GET['b_zone']; ?>&m_category=<?php $_GET['m_category']; ?>" method='POST'>
<?php if(isset($_GET['b_zone'])) { $bid=$_GET['b_zone']; $bachelor->bazar_deposit_show_parson($bid); } ?>
<button type='submit' name='submit' class='btn btn-warning btn-lg btn-block'>Save Recode</button>
</form>
</div>
<!-- Bottom navigation -->
<?php require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "../layout/footer.php"); ?>
然後當我提交表單它擊中(Controller.php這樣)
public function update_bazar_deposit($mmid,$deposit)
{
$sql = $this->db->prepare("UPDATE `bazar_deposit` SET deposit=:deposit WHERE bachelor_member_id=:mmid");
$sql->bindparam(':mmid', $mmid[]);
$sql->bindparam(':deposit', $deposit[]);
$sql->execute();
return $sql;
}
我在PDO和OOP新。好吧,當我設置$ mmid [1]和$ deposit [1]的值時,數據庫將取值。但是這種形式的重複會有好幾次,取決於用戶。用戶可以在此表單上重複1,2,3,4或多次。但我無法更新我的數據庫所有行由mmid引用。我只能更新一行。我能做什麼。幫助請..... .....
會發生什麼是空?它仍然會覆蓋以前的值,是嗎? –
不,因爲如果它們都是'null',那麼查詢就會出錯。當它循環遍歷數組時,如果當前爲null,我不相信'bindparam'會保持以前的值。 – Jon
很多很多謝謝jon其工作很好.... !!!! –