2013-04-30 72 views
-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[$row['MONTHNAME(dt)']] = $row['SUM(dist)'] 
+1

那么如果你真的*追加到数组*而不是*覆盖变量* ?! – deceze 2013-04-30 06:32:03

+0

@Svetlio哦,不,这实际上在这里工作。 – deceze 2013-04-30 06:33:15

+0

@Svetlio OP可以。它已经是别名了。 – BlitZ 2013-04-30 06:33:29

回答

2

好像你需要做这样的事情,

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

+0

'$ row ['SUM(dist)']);' BlitZ 2013-04-30 06:36:31

+0

@CORRUPT - 谢谢。编辑。 – Rikesh 2013-04-30 06:37:43

+0

没有它不是这样的,我必须存储月份名称与月份中运行的总距离。为此,我将需要关联数组。使用代码:$ values = array($ row ['MONTHNAME(dt)'] => $ row ['SUM(dist)']);我能够存储的值,但它显示我只有最后存储的值...我想要在我的数据库中的所有月份的值.. – 2013-04-30 07:25:12

1

试试这个。

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

注:Please, don't use mysql_* functions in new code。他们不再维护and are officially deprecated。请参阅red box?请改为了解prepared statements,并使用PDOMySQLi - this article将帮助您决定哪个。如果您选择PDO,here is a good tutorial

+1

请注意,在发布代码时请使用高亮选项。 – BlitZ 2013-04-30 06:35:37

+0

我认为突出显示的目的是区分代码和非代码。这篇文章只有代码,突出显示的目的是什么?编辑:我想现在还有语法着色现在 – 2013-04-30 06:36:55

+0

使**代码**可读**。 – BlitZ 2013-04-30 06:37:58

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)']); 

} 
+0

thanx它的工作 – 2013-04-30 07:30:25

相关问题