0

次のPHPコードがあります。

echo "var s1 = [";
$count = 0;
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
  {
  if ($count++ > 0) echo ", ";
  echo $row['OrdersBal'];
  }
echo "];\n";
echo "var ticks = [";
$count2 = 0;
while($row2 = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
  {
  if ($count2++ > 0) echo ", ";
  echo "'" . $row2['CardName'] . "'";
  }         
echo "];\n";

現在出力しています:

var s1 = [37966.550000, 19876.170000, 17314.580000, 15614.410000, 7575.000000];
var ticks = [];

しかし、私はそれを出力したい:

var s1 = [37966.550000, 19876.170000, 17314.580000, 15614.410000, 7575.000000];
var ticks = ['Parameter Technology', 'Earthshaker Corporation', 'Microchips', 'Mashina Corporation', 'SG Electronics'];

最初に発生するように 2 番目の while ステートメントを移動すると、そのステートメントは正しく出力されます。これにより、この方法で 2 つの while ステートメントを続けて実行することはできないと信じるようになりましたが、代替手段が何であるかはわかりません。助けてくれてありがとう!

4

1 に答える 1

2

ループ中に変数を使用してテキストを保存し、出力します。

$count = 0;
$orders = "";
$cardNames = "";
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
    if ($count++ > 0)
    {
        $orders .= ", ";
        $cardNames .= ", ";
    }
    $orders .= $row['OrdersBal'];
    $cardNames .= $row['CardName'];
}

echo "var s1 = [" . $orders . "];\n";
echo "var ticks = [" . $cardNames . "];\n";
于 2013-03-17T20:02:53.573 に答える