2013-04-30 3 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)']); 

} 

Я ожидаю, что другие значения также должны присутствовать в $ значения массива, но это не происходит.

+1

Тогда что, если вы на самом деле * добавлены в массив * вместо * переписывания переменной * ?! – deceze

+0

@ Svetlio О нет, это действительно сработает здесь. – deceze

+0

@Svetlio OP can. Это уже псевдонимы. – BlitZ

ответ

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

Примечание:Please, don't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого, и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial.

+0

'$ row ['SUM (dist)']);' BlitZ

+0

@CORRUPT - Спасибо. Ред. – Rikesh

+0

нет, это не так, мне нужно сохранить имя месяца с общим пробегом в месяц. Для этого мне понадобится ассоциативный массив. С кодом: $ values ​​= array ($ row ['MONTHNAME (dt)'] => $ row ['SUM (dist)']); Я могу хранить значения, но он показывает мне только последние сохраненные значения ... Я хочу значения всех месяцев, которые есть в моей базе данных. –

1

Попробуйте это:

$values[$row['MONTHNAME(dt)']] = $row['SUM(dist)'] 
+1

Пожалуйста, рассмотрите возможность использования опций выделения при отправке кода. – BlitZ

+0

Я решил, что цель выделения - отличить код от не кода. У этого сообщения был ТОЛЬКО код, какова цель выделения? edit: Я предполагаю, что теперь есть синтаксическая раскраска –

+0

, чтобы код ** читался **. – BlitZ

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 это сработало –

Смежные вопросы