2016-04-26 87 views
-3

我有這樣的代碼,但是當我運行它,它給我的錯誤(注:未定義抵消:1 C:\ WAMP \ WWW \ test3.php上線$str[$row['term_no']] += ",".$row['code'];如何使用數組在PHP語言

如何我可以解決這個問題嗎?

<?php 

$con = mysqli_connect('localhost', 'root', ''); 
mysqli_select_db($con, "uoh"); 
$q = " SELECT * FROM `degree_plan` LEFT JOIN courses ON 
    degree_plan.course_number=courses.course_number 
    where major='COE'"; 

$result = mysqli_query($con, $q); 
if ($result) { 

    $str = []; 
    while ($row = mysqli_fetch_array($result)) { 
     { 
      $str[$row['term_no']] += "," . $row['code']; 
     } 
     foreach ($str as $key => $value) { 

      echo $value; 
      echo $key; 
     } 

    } 
} 

?> 
+1

'如果一切失敗,RTFM' .... –

+1

閱讀[PHP數組(http://php.net/manual/e N/language.types.array.php)。 – axiac

+0

我不知道該行試圖做什麼......但array_push()可能是關閉的。 –

回答

0

在您的代碼中,您將所有代碼放在一個永遠不會定義的元素中。

改變這一點:

$str[$row['term_no']] += ",".$row['code']; 

這樣:

$str[$row['term_no']] = $row['code']; 
0

錯誤發生,因爲數組元素不存在,那麼,首先檢查元素:如果存在,則添加,如果它沒有,創建:

while($row = mysqli_fetch_array($result)) 
{ 
    if (isset($str[$row['term_no']])) // IF ELEMENT EXISTS... 
     $str[$row['term_no']] .= ",".$row['code']; // ADD TO ELEMENT. 
    else $str[$row['term_no']] = $row['code']; // CREATE ELEMENT. 
} 
+0

@JAMES,這個答案允許你在一個「term_no」下累積所有的代碼,因爲它使用'。='。如果你只做'='你不會累積代碼,你只會有最後一個。 –