我通过简单地将数据从一个变量传递到另一个变量来实现这一点,如下所示:
$CalcsSets = $DisplayCalcs;
不需要在第一个if()语句中使用循环,它插入的数据没有引号,但突然它停止工作,我不知道为什么(它只开始显示最后一个整数),所以我使用了更复杂的代码,试图让它再次工作,如下所示。
下面是我正在处理的复杂代码:
for($i=1; $i<=$CalcSets; $i++){
$calculations = PerformCalc($min, $highest, $OperatorType);
echo 'Calculations performed for '.$SetText[$i];
foreach ($calculations as $key => $DisplayCalcs) {
echo $SetCalc[] = $DisplayCalcs.', '; //stores calculations with ',' in
//array.
}
if($CalcSets == 1){
for($i=0;$i<$CalcSets;$i++){
$SetResults = $SetCalc[$i];
echo '<strong>'.(string)$SetResults.'</strong>';
}
DB_Insert($SetResults);
}
它应该做的是将以下格式的值(1,2,3,4,5,)插入到VARCHAR行中的数据库中,但现在它只显示最后一个不带逗号的整数。我最初只想存储整数,而不是逗号,但我无法让它在页面上显示,每个整数后面都有逗号,所以我走了前面提到的路线。
我意识到我可能走错了路,但如果你们中有人知道一种更简单、更简短的方法来做我想做的事,我会非常感谢你们的帮助。
我这样做的原因,是因为在结果页面上,它需要以上面提到的格式显示。
仅供参考,我确实检查了DB行,目前它仍设置为
VARCHAR
,长度为10
。更新以使意图更清楚
好吧,我要回到原点,尽量把我的意图说清楚。我重写这段代码的次数比我想数的还多,我的脑子里一片混乱。
array1 = array(1, 2, 3, 4, 5, 6);
foreach(array1 as $key => $data){
echo $data.',';
// will display 1,2,3,4,5,6, in browser.
}
if(is_true == 1){
INSERT ALL $data values into DB here.
}
这就是我试图用最简单的方式来实现的,我只是在实现我的目标时遇到了极大的困难。
第二次更新-主题已解决
显然,DB字段必须设置为Text而不是VarChar。我想我们每天都会学到新的东西。
再次感谢大家的帮助。非常感谢!
最佳答案
很抱歉,我无法从原始代码中理解,只关注最后一个IF和containing循环,我认为问题在于赋值语句:
$SetResults = $SetCalc[$i];
它应该改为使用.=进行连接。它应该是这样的:
if($CalcSets == 1){
for($i=0;$i<$CalcSets;$i++){
$SetResults .= $SetCalc[$i];
echo '<strong>'.(string)$SetResults.'</strong>';
}
DB_Insert($SetResults);
}
希望能成功!
我完全同意@KemalFadillah关于使用implode()方法的解决方案。从您的代码片段中,我了解到$calculations是存储主要值的数组,即数组(1、2、3、4、5)。所以你可以:
$calculations = PerformCalc($min, $highest, $OperatorType);
$s = implode (', ', $calculations);
DB_Insert($s);
我希望这有意义?
关于php - 将格式化的变量存储到MySQL DB中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8806283/