我有兩個地址輸入'address1'
和'address2'
,它們與'address []'具有相同的名稱。我想將兩個輸入的值都放在數據庫的單個地址列中,但問題是隻有第二個輸入的數據正在存儲到數據庫中。將具有相同名稱的2個輸入存儲到數據庫的1'地址'列中
index.php
$addressData = $_POST['address'];
foreach ($addressData as $addressValue) {
$query = "INSERT INTO `users` (`name` ,`address` , `birthdate` ,`age` , `coach` , `phone`,`email` ,`password`)
VALUES ('".mysqli_real_escape_string($link, $_POST['name'])."' , '".mysqli_real_escape_string($link, $addressValue)."' ,'".mysqli_real_escape_string($link, $_POST['birthdate'])."' ,'".mysqli_real_escape_string($link, $_POST['age'])."' , '".mysqli_real_escape_string($link, $_POST['coach'])."' , '".mysqli_real_escape_string($link, $_POST['phone'])."' , '".mysqli_real_escape_string($link, $_POST['email'])."' , '".mysqli_real_escape_string($link, $_POST['password'])."')";
}
<div class="form-group row">
<label class="col-sm-2 form-control-label">Address1</label>
<div class="col-sm-10">
<input type="text" id="address" class="form-control" name="address[]" placeholder="Home address">
<span class="fa fa-map-marker"></span>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 form-control-label">Address2</label>
<div class="col-sm-10">
<input type="text" id="address2" class="form-control" name="address[]" placeholder="City,Pincode....">
<span class="fa fa-map-marker"></span>
</div>
</div>
在你的foreach循環中,第二次迭代將覆蓋第一次迭代,因此,只有第二個值將被插入到數據庫中。我通常爲每個地址行都有單獨的列。 – ymas
@ymas是一個很好的觀點。假設你的2個地址是'10高街'和'SomeTown'。當你將兩行連接成一列時,當你以後想要知道每個人生活在SomeTown中時會發生什麼......你將一個簡單的查詢變成了一個噩夢查詢 – RiggsFolly