我允许我的用户在我的数据库中的一个字段中插入一个或4个复选框值,稍后希望能够通过对每个单词进行查询来检索此数据,但是,当超过一个值被插入到我的字段中,它用逗号分隔这些值,这很好,但我如何用空格分隔单词?所以我以后可以在我的查询中搜索包含' mechanical'或者' non_mechanical'等
继承人如何存储
mechanical,non_mechanical
逗号也会阻止我对包含' mechanical'例如,因为它最后会有一个逗号?
HTML:
<p>mechanical</p>
<input type="checkbox" id="box1" name="scope_type[]" value="mechanical" onClick="showMore(this);">
<p>Non-Mechanical Hire</p>
<input type="checkbox" id="box1" name="scope_type[]" value="non_mechanical" onClick="showMoreMore(this);">
<p>Tools</p>
<input type="checkbox" id="box1" name="scope_type[]" value="tools" onClick="showMoreMoreMore(this);">
<p>Accessories</p>
<input type="checkbox" id="box1" name="scope_type[]" value="accessories" onClick="showMoreMoreMoreMore(this);">
MySQL的:
<?php
session_start();
$db_hostname = 'localhost';
$db_database = 'xxxx';
$db_username = 'xxxx';
$db_password = 'xxxx';
$db_server = mysql_connect($db_hostname, $db_username, $db_password)
or die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database)
or die("Unable to select database: " . mysql_error());
$scope_type = implode(",",$_POST["scope_type"]);
$ipaddress = $_SERVER["REMOTE_ADDR"];
$sql="INSERT INTO supplier_scope (user_ip, scope_type)
VALUES ('$ipaddress', '$scope_type')";
$result = mysql_query($sql);
$sql2="UPDATE supplier_session SET form2_completed = 'Yes' WHERE form2_completed = 'No' AND user_IP = '$ipaddress'";
$result2 = mysql_query($sql2);
if($result){
header("Location: index.php?registration=success");
}else {
echo "ERROR";
}
?>
答案 0 :(得分:0)
只需使用:
$scope_type = implode(" ",$_POST["scope_type"]);
而不是
$scope_type = implode(",",$_POST["scope_type"]);
答案 1 :(得分:0)
如果您的值在列中以逗号分隔,您仍然可以在表格中进行搜索。
为此用途,
select *
from TABLENAME
where FIND_IN_SET('mechanical', COLUMNNAME)
同样在表中存储分隔值并不是那么好。看看这个
Is storing a delimited list in a database column really that bad?
答案 2 :(得分:0)
您可以使用替换功能来使用空格而不是逗号。