我有一个HTML页面,用户可以在清单中选择多个值。根据所选项目的数量,这是我想将变量附加到自身的次数,用逗号分隔(如果有意义的话)
例如,如果我的字符串是$string = "'$apple'"
(是的,我的字符串意图以这种方式格式化,你会明白为什么)并且用户从清单中选择了3个项目,我的字符串最终会被:
“'$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 .")
解决了,因为我已经将其破坏并用逗号分隔,但我还需要字符串在{{1}中显示'X'次},取决于VALUES
的结果?
我该怎么做?
答案 0 :(得分:1)
在我看来,你想要一个变量和一个计数并从中创建一个字符串。如果是这样的话,这会有效吗?
ARGV.shift
然后,$ str将包含“'x','x','x'”。
您可以问我为什么不使用$value = "'x'";
$count = 3;
$a = array_fill(0, $count, $value);
$str = implode(',', $a);
。我还没有看到使用胶水的方法。 str_repeat
函数允许我使用,作为粘合剂。我只需要先把它变成一个数组。