我通过简单地将数据从一个变量传递到另一个变量来实现这一点,如下所示:

$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/

10-11 01:57