-6

連想配列にさらに値を追加する必要があります。値が上書きされ、最後に表示された値しか表示されません。

私のスニペットは次のとおりです。

$sql= "SELECT  MONTHNAME(dt),SUM(dist) FROM demo GROUP BY MONTHNAME(dt) ";
$result=mysql_query($sql,$con) or die(mysql_error());

while($row = mysql_fetch_array($result))
{

$values=array($row['MONTHNAME(dt)'] => $row['SUM(dist)']);

}

他の値も配列 $values に存在することを期待していますが、それは起こっていません。

4

3 に答える 3

2

このようなことをする必要があるようですが、

$values = array();
while($row = mysql_fetch_array($result))
{
  $values[$row['MONTHNAME(dt)']] = $row['SUM(dist)'];
}
print_r($values);

好きな連想配列が必要な場合。

$values[] = array($row['MONTHNAME(dt)'] => $row['SUM(dist)']);

注: 新しいコードでは関数を使用しないでくださいmysql_*。それらはもはや保守されておらず、公式に廃止されています。赤いボックスが見えますか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを使用するかを決めるのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-04-30T06:34:18.867 に答える
1

これを試して:

$values[$row['MONTHNAME(dt)']] = $row['SUM(dist)']
于 2013-04-30T06:34:03.437 に答える
0

使うべきだと思います。

$sql= "SELECT  MONTHNAME(dt),SUM(dist) FROM demo GROUP BY MONTHNAME(dt) ";
$result=mysql_query($sql,$con) or die(mysql_error());
$values = array();
while($row = mysql_fetch_array($result))
{

  $values[] = array($row['MONTHNAME(dt)'] => $row['SUM(dist)']);

}
于 2013-04-30T06:36:53.713 に答える