在mysql字段中插入多个复选框值但在每个字段之间添加空格?

时间:2014-05-12 11:21:52

标签: php mysql

我允许我的用户在我的数据库中的一个字段中插入一个或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";
}
?>

3 个答案:

答案 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)

您可以使用替换功能来使用空格而不是逗号。