未定义的偏移量和警告:不能修改报头信息-报头已经由


Undefined offset and Warning: Cannot modify header information - headers already sent by

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

时,我可以完美地输出CSV

然而,当我尝试选择特定的列时,我有,例如在

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

我得到以下错误

注意:未定义的偏移量:1(直到N-1字段我有)警告:无法修改报头信息——报头已经由

发送

你们能给点建议吗?

注意:未定义偏移量:1

是这里发生的唯一错误。如果这个:

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

失败和:

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

成功,很可能您拼写字段名称错误,因此查询失败,返回非数组资源,如false

警告:无法修改报头信息-报头已经由

发送

只是第一个错误被打印出来的结果。

这不是标头已经发送的问题。这个错误只是另一个错误的结果。
当然,错误消息会导致发送报头。
但是修复错误,两条消息都将消失。

然而,"未定义偏移"错误是第二个最流行的问题在Stackoverflow。但是,很可能是由另一个错误引起的。

很可能你使用旧的丑陋的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
}