2011-03-12 58 views
1

我有以下代码,它只在指定列号时起作用!MYSQL按名称在PHP中选择行

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
    echo($row[0]); 
} 

不是当我使用的名称虽然

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
    echo($row['name']); 
} 

有什么需要对MYSQL箱设置?

+0

您确定在结果集中有'name'列吗? *(你有没有这样的列在你的表中,并且它被选中)* – 2011-03-12 14:51:36

回答

4

您可能想要尝试print_r($row)进行调试,以便查看结果集中实际设置了哪些列名称。获取关联名称不需要以某种方式进行配置,但索引名称需要精确地表示数据库结果中的列名称。

+0

+1用于暗示调试而不是通常的猜测 – 2011-03-12 15:04:41

+0

是+1并且接受,因为该行被称为tablename_columnname – 2011-03-12 15:24:39

0

mysql_fetch_array根据documentation根据第二个参数将结果行作为数值数组或取值作为关联数组提取。默认情况下,这是MYSQL_BOTH,所以你可以通过两种方式访问​​。

看起来问题可能与您的查询相似,特别是您的SELECT声明中列的实际名称。没有看到更多的查询,我可以建议将AS name添加到第一列以确保它是实际检索的列名称。 print_r将打印数组以供进一步调试。