您好我正在开发一个针对餐馆的Android应用程序的管理员后端。我需要根据他们的类别列出餐馆提供的所有食品。问题是可能有一些类别没有列出任何项目,如果遇到这样的类别,php后端应该只返回一个空列表,但类别名称应该在那里。
到目前为止我的当前代码
try
{
$query = "SELECT category FROM category";
$result= $DBH->query($query);
while($row = $result->fetch(PDO::FETCH_ASSOC))
{
$cat = $row['category'];
$query1 = "SELECT * FROM item WHERE catagory='$cat'";
$value = $DBH->query($query1);
$row1 = $value->fetch(PDO::FETCH_OBJ);
$main = array('data'=>array($row1));
echo json_encode($main);
}
$result->closeCursor(); //Close database connection free resources
$DBH = null;
}
catch(PDOException $e){
print $e->getMessage ();
die();
}
提供这样的输出
{"data":[{"id":"2","name":"Rice","price":"120","description":"Plain Rice","image":"6990_abstract-photo-2.jpg","time":"12 mins","catagory":"Lunch","subcat":""}]}
{"data":[{"id":"4","name":"Dal","price":"5","description":"dadadad","image":"","time":"20 mins","catagory":"Dinner","subcat":""}]}
{"data":[false]}
我的问题是显示{"data":[false]}
的最后一个输出应该是这样的{"data":["catagory":"Soup"]}
要做到这一点,我需要找出$main
变量为空时然后手动添加类别。
有任何想法或解决这种情况吗?
答案 0 :(得分:1)
你想要这个修改..........
if ($row1 = $value->fetch(PDO::FETCH_OBJ)){
$main = array('data'=>array($row1));
echo json_encode($main);
}else{
echo '{"data":["catagory":"' . $row['category'] . '"]}';
}
答案 1 :(得分:0)
你的问题源于你有一个'汤'类别,但你没有属于汤类的任何物品。您应该为空结果添加条件并相应地更改回显数组。
if (empty($row1))
{
$main = array('data'=>array('category'=>$cat));
}
else
{
$main = array('data'=>array($row1));
}