2012-06-28 55 views
0

我正在使用一個數據庫查詢,需要一個州和城市,然後吐出10個字段。目前,我只能使用print_r查看這些字段。我試圖在php manual site的循環打印字段的建議,但我不能讓它正常工作。下面是代碼:PHP不能打印數組元素而不使用print_r

if (!$result) { 
     echo 'Could not run query: ' . mysql_error(); 
     exit; 
    } 
    if (mysql_num_rows($result) > 0) { 
     while ($row = mysql_fetch_assoc($result)) { 
      print_r($row)."</p>"; 
      $arrayLength = count($row); 
      for ($i = 0; $i < $arrayLength; $i++){ 
       echo "arrayName at[" . $i . "] is: [" .$row[$i] . "]<br>\n"; 
      } 


     } 

    } 

這是結果:

Array ([id] => 1299 [zip_code] => 04011 [city] => Brunswick [county] => Cumberland [state_name] => Maine [state_prefix] => ME [area_code] => 207 [time_zone] => Eastern [lat] => 43.9056 [lon] => -69.9646) .... 
arrayName at[0] is: [] 
arrayName at[1] is: [] 
arrayName at[2] is: [] 
arrayName at[3] is: [] 
arrayName at[4] is: [] 
arrayName at[5] is: [] 
arrayName at[6] is: [] 
arrayName at[7] is: [] 
arrayName at[8] is: [] 
arrayName at[9] is: [] 

爲什麼我不能夠正常打印的字段和它們的值的任何想法?此外,如果查詢返回多行,因爲當前代碼不能真正適應它,我的代碼將失敗。

我把$ i放在for循環體中,看它是否正常工作。理想情況下,我會在$ i所在的字段名稱和冒號後面的值右邊。

回答

3

您正在使用mysql_fetch_assoc所以 改變的環路取到

foreach($row as $key => $value){ 
echo "Array key : $key = $value <br/>"; 
} 
3

你的數組鍵是'id''zip_code'等沒有什麼在陣列的01等指標。

foreach ($row as $key => $value) { 
    echo "arrayName at[" . $key . "] is: [" . $value . "]<br>\n"; 
    // which is the same as: 
    echo "arrayName at[" . $key . "] is: [" . $row[$key] . "]<br>\n"; 
} 
0

是的,因爲它返回一個關聯數組 這意味着,你必須訪問,像這樣的內容: $行[「身份證」]例如

你想這是什麼

foreach($row as $key => $value) 
echo "arrayName at[" . $key . "] is: [" .$value . "]<br>\n";