我使用以下代码从数据库预先填充金额的字段。
$amount = db_result(db_query('SELECT amount FROM {table} WHERE nid = %d', $fid));
$node->edit_user_fid = $amount;
如果查询没有找到任何内容,则只显示为空。如果没有结果,我怎样才能将值变为0?
答案 0 :(得分:2)
$node->edit_user_fid = ($amount) ? $amount : 0;
或者也可写为
if (!$amount) {
$node->edit_user_fid = 0;
}
或者如果您确定$ amout是数字(并且应该是),请使用
$node->edit_user_fid = intval($node->edit_user_fid);
答案 1 :(得分:1)
如果amount是int,则可以使用intval()或(int)强制转换,这样您将始终获得一个数值。
答案 2 :(得分:0)
db_result()
在找不到与正在执行的查询匹配的表行时返回FALSE
。只需将返回的值转换为整数。
$node->edit_user_fid = (int) db_result(db_query('SELECT amount FROM {table} WHERE nid = %d', $fid));
答案 3 :(得分:0)
-.-你可以使用=== false或=== 0来测试它是零还是假(测试类型和值) 无需测试false并重置为0或设置变量类型