php 条件判定配列が[false]を返す場合

WBOY
リリース: 2016-06-20 12:48:11
オリジナル
1311 人が閲覧しました

{"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 にします


Make json データを返し、データベースから複数のデータ、つまり複数の配列を読み取り、トラバースして json に変換し、アプリに返すための APP インターフェイス
リクエストの検証に合格すると、データを読み出すことができますとjsonで提示されますが、リクエストが検証に合格しなかった場合、エラーが発生します。読み込んだデータが空の場合でも、戻り値は200成功です。
検証条件は、データベースを読み込むための条件です。条件を満たしている場合は読み込めません。そして、配列が空であると判断された場合は 400 になるはずですが、この [false] は空とはみなされないため、結果は
200 success [false] を返します。この場合、これは機能しません。

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 個の成功データを返すことです。 ""

    $arrData =array();    while ($$row = mysql_fetch_array($sql_notice))    {       $arrData[] = $row;    }    if($arrData) {      Response::json(200,'success',$arrData);    } .....
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

あなたの目的は気にしません、私はあなたが必要とするフォーマットだけを気にします



モデレータのおかげで学びました。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート