2013-02-26 60 views
0

我可以輸出CSV發送了頭完全當$values = mysql_query("SELECT * FROM ".$table."");未定義偏移和警告:不能更改頭信息 - 已經

然而,當我嘗試選擇我有,例如特定的列

$values = mysql_query("SELECT email, status FROM ".$table.""); 

我收到以下錯誤

注意:未定義抵消:1(推移,直至N-1場我有)警告: 不能更改頭信息 - 頭ALR伊迪發送的

請問你們?

+0

http://stackoverflow.com/questions/8028957/headers-already-sent-by-php – 2013-02-26 11:59:58

+0

發佈更多驗證碼。您使用哪個函數來「獲取」這些值? – 2013-02-26 12:00:00

+0

那些字段是否存在於該表中?如果mysql拋出一個錯誤,導致頭文件被修改,並且沒有生成CSV – Husman 2013-02-26 12:00:01

回答

0

這不是頭文件已經發送的問題。這個錯誤只是另一個錯誤的結果。
當然,錯誤消息會導致標題被髮送。
但修復錯誤,這兩條消息都將消失。

儘管如此,「未定義抵消」的錯誤是第二#2最流行的問題。儘管這很可能是由另一個錯誤導致的。

很可能你使用舊的醜陋mysql_result()來獲取mysql數據。
並且不檢查mysql錯誤。
做你的MySQL這樣

$sql = "SELECT email, status FROM ".$table; 
$res = mysql_query($sql) or trigger_error(mysql_error(),"[$sql]"); 
while ($row = mysql_fetch_array()) { 
    echo $row['name']; // assuming "name" field in the data 
} 
0

注意:未定義抵消:1

是這裏真正發生的唯一的錯誤。如果這樣的:

$values = mysql_query("SELECT email, status FROM ".$table.""); 

失敗和:

$values = mysql_query("SELECT * FROM ".$table.""); 

成功,這是最有可能的,你是拼寫領域名字寫錯了,因此查詢失敗,返回非陣列資源像false

警告:不能更改頭信息 - 已經

發送的只是被打印出來的第一個錯誤的結果頭。

相關問題