2016-10-21 97 views
1

我試着將其打印在Excel中,但我不明白爲什麼foreach循環給我一個警告:非法串偏移while循環它只是平穩運行而循環VS的foreach循環

這是while循環

EDITED

include 'db.php'; 
$sql = "SELECT * FROM customer"; 
$result = mysql_query($sql); 
$excel = array(); 

while($row = mysql_fetch_array($result)){ 
    $wew = $row["fname"]."\t".$row["lname"]."\t".$row["email"]; 
    array_push($excel,$wew); 
} 

echo implode("\n",array_values($excel)); 

這是我foreach循環

include 'db.php'; 
$sql = "SELECT * FROM customer"; 
$result = mysql_query($sql); 
$row = mysql_fetch_array($result); 
$excel = array(); 

foreach($row as $r){ 
    $wew = $r["fname"]."\t".$r["lname"]."\t".$r["email"]; 
    array_push($excel,$wew); 
} 

echo implode("\n",array_values($excel)); 

我試着去了解它,但怎麼也找不到解決這個問題之一。

+0

因爲while循環使用'mysql_fetch_array' –

+0

@JeffPuckettII我foreach循環使用不mysql_fetch_array –

+1

你只會得到一行使用foreach輸出結果,並比較 – nogad

回答

2

$rstring型,而不是array這樣的:

foreach($row as $r){ 
    $wew = $row["fname"]."\t".$row["lname"]."\t".$row["email"]; 
    array_push($excel,$wew); 
} 

OR

$wew = ""; 
foreach($row as $r){ 
    $wew .= $row["fname"]."\t".$row["lname"]."\t".$row["email"]; 
} 
array_push($excel,$wew); 
+0

這將只給出一個結果,而不是while循環取回所有結果。您將獲得重複的行,結果集中的每一列都有一個這樣的行。 –

+0

@JeffPuckettII我編輯問題先生 –

+0

謝謝先生所以這就是爲什麼如果即時通訊使用$ r給我非法字符串因爲我已經使用字符串 –