{"code":200,"message":"success","data":[false]}
登录后复制
$sql_notice=mysql_query(sql语句) $arrData =array(); while ($arrData[] = mysql_fetch_array($sql_notice)) { $arrData; } $sData = array_values($arrData); if(。。。){ Response::json(200,'success',$sData); }else{ Response::json(400,'error',""); }
登录后复制
请注意 是[false] 不是false
因为前面应需要加了[]
这个是做的转json返回数据的接口 while循环那里若有优化的写法也请指教
现在就是因为这个 若不符合返回的会是[false] 试着用和false一样的方法去判断结果都不行
求教这里要怎么写
回复讨论(解决方案)
1、你需要得到什么?哪里出了问题?
2、Response::json 方法是怎么写的
3、while ($arrData[] = mysql_fetch_array($sql_notice)) 将会使 $arrData 数组的最后一个元素为 false
1、你需要得到什么?哪里出了问题?
2、Response::json 方法是怎么写的
3、while ($arrData[] = mysql_fetch_array($sql_notice)) 将会使 $arrData 数组的最后一个元素为 false
做一个APP接口返回json数据 数据库读出多条数据 也就是多个数组 遍历 转为json 返回给app端
现在请求验证通过的话数据都可以读出并以json呈现 但当请求没有通过验证致使读取的数据为空时,返回仍是200 成功
验证条件就是读取数据库的条件 不符合就读不到 然后判断数组为空就应该400 但是由于这个[false]不被视为空,所以结果会返回
200 成功 [false] 这样就不行了 应该这种情况下是400失败的
1、你需要得到什么?哪里出了问题?
2、Response::json 方法是怎么写的
3、while ($arrData[] = mysql_fetch_array($sql_notice)) 将会使 $arrData 数组的最后一个元素为 false
class Response { const JSON = "json"; /** * * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * @param string $type 数据类型 * return string */ public static function show($code, $message = '', $data = array(), $type = self::JSON) { if(!is_numeric($code)) { return ''; } $type = isset($_GET['format']) ? $_GET['format'] : self::JSON; $result = array( 'code' => $code, 'message' => $message, 'data' => $data, ); if($type == 'json') { self::json($code, $message, $data); exit; }else{ // TODO } } /** * 按json方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ public static function json($code, $message = '', $data = array()) { if(!is_numeric($code)) { return ''; } $result = array( 'code' => $code, 'message' => $message, 'data' => $data ); echo json_encode($result); exit; }}
登录后复制
如果是while那句的写法有问题导致的话 求教怎么改
$arrData =array(); while ($$row = mysql_fetch_array($sql_notice)) { $arrData[] = $row; } if($arrData) { Response::json(200,'success',$arrData); } .....
登录后复制
登录后复制
登录后复制
我不关心你的目的是什么,只关心你需要什么样的格式
$arrData =array(); while ($$row = mysql_fetch_array($sql_notice)) { $arrData[] = $row; } if($arrData) { Response::json(200,'success',$arrData); } .....
登录后复制
登录后复制
登录后复制
我不关心你的目的是什么,只关心你需要什么样的格式
按我当前的模式 验证条件即是查询条件的话 判断自然是是否有数据了
我现在需要的是有就用json格式输出 返回200 成功 数据 如果没有 就返回 400 失败 ""
$arrData =array(); while ($$row = mysql_fetch_array($sql_notice)) { $arrData[] = $row; } if($arrData) { Response::json(200,'success',$arrData); } .....
登录后复制
登录后复制
登录后复制
我不关心你的目的是什么,只关心你需要什么样的格式
受教了 感谢版主大大