我有一个 HTML 页面,用户可以在其中选择 list 中的多个值。根据所选项目的数量,这就是我想将变量附加到自身的次数,用逗号分隔(如果有意义的话)
例如,如果我的字符串是 $string = "'$apple'"
(是的,我的字符串应该采用这种格式,您会明白为什么)并且用户选择了 3 list 中的项目,我的字符串最终将是:
“'$apple', '$apple', '$apple'
”
当用户提交页面时,这里是 PHP:
$category = mysql_real_escape_string($_POST['category']);
$string = 'test';
if (count($category) === 1) {
//donothing
}
else{
$category = implode(",",$category);
}
$numcat = count($category); //count number of items in $category, save value to $numcat
$query = mysql_query("INSERT INTO table (". $category .") VALUES ('$string')");
作为引用,如果用户从 HTML 表单中选择了“apple, banana, grape”,我希望查询基本上如下所示:
$query = mysql_query("INSERT INTO table (apple, banana, grape) VALUES ('$string', '$string', '$string')");
另一个例子,如果用户从 HTML 表单中只选择了“apple, grape”,我希望它最终看起来像这样:
$query = mysql_query("INSERT INTO table (apple, grape) VALUES ('$string', '$string')");
INSERT INTO table (apple, grape)
已经通过 INSERT INTO table (". $category .")
解决了,因为我已经将它内爆并分离了逗号,但我还需要字符串在 VALUES
中显示“X”次,具体取决于 count($category)
的结果?
我该怎么做?
最佳答案
在我看来,您想获取一个变量和一个计数并从中生成一个字符串。如果是这样的话,这行得通吗:
$value = "'x'";
$count = 3;
$a = array_fill(0, $count, $value);
$str = implode(',', $a);
然后,$str 将包含“'x','x','x'”。
你可以问我为什么不用str_repeat
。我还没有看到使用胶水的方法。 implode
函数让我可以使用 , 作为粘合剂。我只需要先把它变成一个数组。
关于php - 将字符串附加到自身, 'X' 次(其中 'x' 是变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37162673/