显示数组的值?

时间:2013-07-10 20:05:38

标签: php mysql

<?php
    $result = $mysqli->query(SELECT SUM(Answer) as answer FROM answers WHERE SID ='$uname'");
            $Sum = $result->fetch_row();
    var_dump($Sum);
?>

执行上面的代码时,我得到以下内容:Array ( [SUM(Answer)] => 8 ),但是,当我尝试访问$Sum[0]时,我得到以下未定义的偏移:0并且它什么都不打印。我需要在echo语句中使用此变量。另外,$ Sum ['Answer']什么都不打印,我得到一条消息说未定义索引答案。

3 个答案:

答案 0 :(得分:4)

mysql_fetch_assoc返回一个关联数组,而不是数字数组,所以0将是一个未定义的索引。与其他语言不同,PHP数组不会自动拥有数字索引。

如果要使用数字索引,则应使用mysql_fetch_array来获取包含关联索引和数字索引的数组。但是,如果需要坚持关联数组,则需要使用相应的键:

$Sum['SUM(Answer)'];

密钥是不寻常的,因为你的SQL没有给SUM(Answer)一个名字所以我建议你更新它以便有一个:

$SQL = "SELECT SUM(Answer) as answer FROM answers WHERE SID ='$uname' ";

答案 1 :(得分:3)

如果要打印数组或对象的值并显示其所有成员/属性,请使用print_r函数。

print_r($Sum);

或者,为了更好地在网页上进行格式化:

echo '<pre>' . print_r($Sum, true) . '</pre>';

编辑后:var_dump是正确的,您需要按名称访问您的列,如下所示:

$Sum['SUM(Answer)']

如果您不喜欢这样,请更改列的名称(SELECT SUM(Answer) AS sum FROM...或类似名称,然后您可以$Sum['sum'])。

答案 2 :(得分:0)

提示:请务必查看PHP Manual

自PHP 5.5.0起,不推荐使用mysql_fetch_assoc()扩展,因为应该使用MySQLi和PDO扩展。 Just to quote the manual ...

如果要调试代码,请使用:

echo '<pre>' . print_r($result, true) . '</pre>';

这将回显格式化的数组/对象,因此您可以更轻松地阅读。

var_dump的可读性较差,因为它显示了类型(例如字符串)和字符串长度。

PHP Arrays Manual将教你如何使用数组。

快乐阅读: - )