我有3个帖子变量&我需要在mysql表中的单个字段中保存这3个变量值
below are table field details:
-------------------------------
id int(11)
name varchar(100)
country varchar(100)
details varchar(100) (this field used for store all 3 variables value)
如果变量值过帐为id = 1,则名称为steve& country = usa然后需要存储为
结果 - 1,史蒂夫,美国
现在问题是所有3变量都是可选的,所以如果只传递id&名称需要存储为
结果 - 1,steve (不会存储最后一个逗号)
如果通过了id&国家然后需要存储为
结果 - 1,美国(不会存储其他逗号)
我试过了:
if(isset($data['id']) || isset($data['name']) || isset($data['country']))
{
$details=$data['id'].",".$data['name'].",".$data['country'];
}
我如何在php-mysql中实现这一目标?
答案 0 :(得分:7)
将现有值放在数组中并在
之后将其内爆$details = [];
if(isset($data['id']) and !empty($data['id'])) $details[] = $data['id'];
if(isset($data['name']) and !empty($data['name'])) $details[] = $data['name'];
if(isset($data['country']) and !empty($data['country'])) $details[] = $data['country'];
$details = implode(',', $details);
答案 1 :(得分:1)
您的代码
if(isset($data['id']) || isset($data['name']) || isset($data['country']))
{
$details=$data['id'].",".$data['name'].",".$data['country'];
}
只需在代码后添加此内容即可。 你完成了。
$details = trim($details,',');
答案 2 :(得分:0)
$text = '';
foreach($details as $k=>$v) { if($v) $text .= ($text?',':'') . $v; }