我试图弄清楚如何在一个mysql记录中插入多个复选框值。我在代码片段后尝试过代码段。也许有人可以看看这个并告诉我我做错了什么?
注意:这仅适用于我的本地主机,因此不需要考虑安全性。
表格:
<form action="newcar.php" method="post">
Name: <input type="text" name="name"><br />
Address: <input type="text" name="address"><br />
City: <input type="text" name="city"><br />
State: <select name="state">
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select><br />
Zipcode: <input type="text" name="zipcode"><br />
Company: <input type="text" name="company"><br />
Work Number: <input type="text" name="work"><br />
Cell Number: <input type="text" name="cell"><br />
Fax Number: <input type="text" name="fax"><br />
Insurance: <input type="text" name="insurance"><br />
Certifications:
<input type="checkbox" name="certifications[]" value="FL" />FL
<input type="checkbox" name="certifications[]" value="NC" />NC
<input type="checkbox" name="certifications[]" value="NY" />NY
<br />
<input type="submit">
</form>
和php:
<?php
$con=mysqli_connect("localhost","root","PASSWORD","pilotcars");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$Name = mysqli_real_escape_string($con, $_POST['name']);
$Address = mysqli_real_escape_string($con, $_POST['address']);
$City = mysqli_real_escape_string($con, $_POST['city']);
$State = mysqli_real_escape_string($con, $_POST['state']);
$Zipcode = mysqli_real_escape_string($con, $_POST['zipcode']);
$Company = mysqli_real_escape_string($con, $_POST['company']);
$Work_Number = mysqli_real_escape_string($con, $_POST['work']);
$Cell_Number = mysqli_real_escape_string($con, $_POST['cell']);
$Fax_Number = mysqli_real_escape_string($con, $_POST['fax']);
$Insurance = mysqli_real_escape_string($con, $_POST['insurance']);
$Certifications = mysqli_real_escape_string($con, $_POST['certifications']);
$certification="";
$flag=0;
foreach($Certifications as $entry){
$certification .= $entry."|";
$flag=1;
}
if($flag==1){
$certification=rtrim($certification);
}
$sql="INSERT INTO pilotcarlistings (Name, Address, City, State, Zipcode, Company, Work_Number, Cell_Number, Fax_Number, Insurance, Certifications)
VALUES ('$Name', '$Address', '$City', '$State', '$Zipcode', '$Company', '$Work_Number', '$Cell_Number', '$Fax_Number', '$Insurance', '$certification')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
echo "<meta http-equiv=\"refresh\" content=\"0;URL=index.php\">";
mysqli_close($con);
?>
除了多个复选框外,所有工作都有效。我试图将值保存在一个mysql列中。
答案 0 :(得分:1)
你可以使用implode加入你的数组,然后当你想获得可以爆炸它的值时。
请注意,有很多不同的方法可以这样做,但目前我可以想到implode()
例如我刚用数组做了一个字符串
$string = array( 'a','b','c','d','e','f','g','h' );
$string = implode( '|', $string );
echo $string;
运行代码段并查看结果。在你的情况下,你可以做同样的事情加入你的数组与分隔符,例如|或 - (无论如何)然后当你想要处理它时,你可以爆炸这个字符串并创建一个数组
另请查看有关内爆和爆炸的php.net信息
祝你好运
答案 1 :(得分:0)
尝试:
$certification = implode('|', $_POST['certifications']);