我有一个只有两列的SQL表,CODE和BALANCE,CODE是一个名称,Balance是$ amount

时间:2013-05-23 14:28:22

标签: php sql

为什么我在这个echo和div类中尝试print_r它会返回患者欠1?

 $balance_out = sql::results("SELECT CODE,BALANCE FROM event.acs.ptbalance() WHERE CODE='$patient_id' and BALANCE > 0");
    echo "<div class='patient_alert red'>Patient owes ".print_r($balance_out)."</div>";

但是如果我只是像这样print_r它会正确地给我数组。

echo "<pre>"; print_r ($balance_out); echo "</pre>"; 
像这样:

Array
(
    [0] => Array
        (
            [CODE] => ACSSCHAR00
            [BALANCE] => 24.33
        )

)

非常感谢任何帮助。我必须确定我想要的数组键值吗?

2 个答案:

答案 0 :(得分:2)

不要假设函数如何工作;只需检查the manual

  

混合print_r(mixed $ expression [,bool $ return = false])   
[...]
  返回值   
[...]
  当return参数为TRUE时,此函数将返回一个字符串。否则,返回值为TRUE

因此,如果您希望print_r()返回值而不是打印它,请相应地使用第二个参数:

echo "<div class='patient_alert red'>Patient owes ".print_r($balance_out, true)."</div>";
                                                                          ^^^^

答案 1 :(得分:1)

除非您传递print_r

的第二个参数,否则无法将true连接到您正在尝试的字符串中

例如

print_r($balance_out, true);

否则返回true,由字符串解释为1

但是,如果要将患者平衡插入HTML输出

,则可能需要执行此类操作
 "<div class='patient_alert red'>Patient owes ".$balance_out[0]['BALANCE']."</div>";