PHP JSON:结果为空时打印空白页
我有这段代码,用于使用PHP JSON:结果为空时打印空白页,php,mysql,json,Php,Mysql,Json,我有这段代码,用于使用phpjson方法从MySql数据库获取数据 $ret = array(); if(isset($_GET['userid'])){ $user = detect_attakcs($_GET['userid']); $sql = DataSQL::FETCH("SELECT image FROM news WHERE user = ? ",$user); foreach($sql as $value){ $ret[] = $value['image']; } echo j
php
json
方法从MySql数据库获取数据
$ret = array();
if(isset($_GET['userid'])){
$user = detect_attakcs($_GET['userid']);
$sql = DataSQL::FETCH("SELECT image FROM news WHERE user = ? ",$user);
foreach($sql as $value){
$ret[] = $value['image'];
}
echo json_encode($ret);
}
如果结果不为空,则输出:
["1.jpg","member_ph.png","user.jpg"]
无结果时输出(空)
现在,当结果为空时,我需要打印空白页,而不是打印[“”]
我该如何解决这个问题?从评论中可以清楚地看出,询问者从不想显示
[“”]
,并且添加到$ret
的条目可能是空的,在这种情况下,我们也不想显示任何JSON。让我们检查是否只将数据添加到非空的$ret
。然后,我们检查$ret
是否正确
或者,如果我们有很多复杂的条件,其中输出是
[“”]
,我们可以检查输出是否是[“”]
,并且只在不等于该值的情况下输出。不过,这可能仍然会输出类似的空值
$json_output = json_encode($ret);
if ($json_output != '[""]') {
echo $json_output;
}
试试这个:
echo empty($ret) ? '' : json_encode($ret);
希望有帮助。我喜欢函数名
检测\u攻击
。我得记住那个名字。是的,名字很有趣。我想知道里面有什么<代码>$user=inval($\u GET['userid'])代码>就足够了。它可能没有拼写错误。这就是攻击
在他的语言中的方式。这不好。当没有结果时,他想要一个空数组。@machineaddict OP说:“现在,当结果为空时,我需要打印空白页,而不是打印[“”]
”(强调我的)。@ljacqu:这是错误的if(count($ret)==0){echo json_encode($ret);}
OP说:如果结果为空则打印空白页,否则打印结果@ღ..桑博拉。。ღ: 你说得对。此代码不适用于me@ljacqu:不工作。我认为count不能与$ret数组一起使用。你能测试你的代码吗?
$json_output = json_encode($ret);
if ($json_output != '[""]') {
echo $json_output;
}
echo empty($ret) ? '' : json_encode($ret);