$type=$_POST['type'];//直接看类型获取对应数据 无需登录switch ($type){case 1: //sql读数据1 $acase 2: //sql读数据2 $a}if($a){} //读出数据有就返回 没有就返回错误 die;if($user){} //验证是否登录//登陆后才能依类型获取的数据switch ($type){case 3: xxxxxxx $bcase 4: xxxxxxx $b}if($b){} //读出数据有就返回 没有就返回错误 die;switch ($type){case 5: xxxxxxx $ccase 6: xxxxxxx $c}if($c){} //读出数据有就返回 没有就返回“此项为空” 这里不算错
ディスカッションへの返信(解決策)
$type=$_POST['type']; //$type 只会是单值switch ($type) { case 1: //生成 sql 指令1 case 2: //条件生成 sql 指令2 //sql读数据 $a if($a){} //读出数据有就返回 没有就返回错误 die; break; case 3: xxxxxxx $b case 4: xxxxxxx $b if($b){} //读出数据有就返回 没有就返回错误 die; break; case 5: xxxxxxx $c case 6: xxxxxxx $c if($c){} //读出数据有就返回 没有就返回“此项为空” 这里不算错}
$type=$_POST['type']; //$type 只会是单值switch ($type) { case 1: //生成 sql 指令1 case 2: //条件生成 sql 指令2 //sql读数据 $a if($a){} //读出数据有就返回 没有就返回错误 die; break; case 3: xxxxxxx $b case 4: xxxxxxx $b if($b){} //读出数据有就返回 没有就返回错误 die; break; case 5: xxxxxxx $c case 6: xxxxxxx $c if($c){} //读出数据有就返回 没有就返回“此项为空” 这里不算错}
試してみたところ
type=4の場合、$bの判定が行われますが、if ($a){}
break;
if($user) を追加した後
ログインを判断する
その後、ケース 3
ケース 4
if( $b){1}else{2}
結果は常に 2 です
ルールを説明して実際のコードを投稿してください
switch ($type) { case 1: $sql = SQL语句 $a = = mysql_fetch_assoc($sql ); case 2: $sql = SQL语句 $a = = mysql_fetch_assoc($sql ); if($a){ $rep['code'] = 1; $rep['valid'] = $a; reponse($rep);}else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);} break; case 3: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); case 4: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); if($b){ $rep['code'] = 1; $rep['valid'] = $b; reponse($rep);}else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);} break; case 5: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); case 6: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); if($c){ $rep['code'] = 1; $rep['valid'] = $c; reponse($rep);} else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);}}
function reponse($rep){ echo json_encode($rep); die;}
switch ($type) { case 1: $sql = SQL语句 $a = = mysql_fetch_assoc($sql ); case 2: $sql = SQL语句 $a = = mysql_fetch_assoc($sql ); if($a){ $rep['code'] = 1; $rep['valid'] = $a; reponse($rep);}else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);} break; case 3: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); case 4: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); if($b){ $rep['code'] = 1; $rep['valid'] = $b; reponse($rep);}else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);} break; case 5: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); case 6: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); if($c){ $rep['code'] = 1; $rep['valid'] = $c; reponse($rep);} else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);}}
function reponse($rep){ echo json_encode($rep); die;}
Are you so $s ql = SQL ステートメント; $b = mysql_fetch_assoc( $sql ); これはクエリ結果を返すことができますか?
必ずfalseが返されます
$b = mysql_fetch_assoc(mysql_query($sql ));
その後、5 6が読み出される 使用後配列内の while ループは、5 つであっても 6 つであっても、すべて読み出されます。 。
つまり、while ループは case 内でラップされていません。 。 。
switch ($type) { case 1: $sql = SQL语句 $a = = mysql_fetch_assoc($sql ); case 2: $sql = SQL语句 $a = = mysql_fetch_assoc($sql ); if($a){ $rep['code'] = 1; $rep['valid'] = $a; reponse($rep);}else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);} break; case 3: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); case 4: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); if($b){ $rep['code'] = 1; $rep['valid'] = $b; reponse($rep);}else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);} break; case 5: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); case 6: $sql = SQL语句 $b = mysql_fetch_assoc($sql ); if($c){ $rep['code'] = 1; $rep['valid'] = $c; reponse($rep);} else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);}}
function reponse($rep){ echo json_encode($rep); die;}
これはクエリ結果を返すことができますか?
こうやってfalseを返さないといけませんね
全て単一のデータです
5 はファンドログ 6 はポイントログ
while ループを使用して配列を読み出します
$b = mysql_fetch_assoc(mysql_query($sql ));
switch ($type) { case 1: $sql = SQL语句1 break; case 2: $sql = SQL语句2 break; case 3: $sql = SQL语句3 break; case 4: $sql = SQL语句4 break; case 5: $sql = SQL语句5 break; case 6: $sql = SQL语句6 break;}$a = = mysql_fetch_assoc($sql ); if($a){ $rep['code'] = 1; $rep['valid'] = $a; reponse($rep);}else{ $rep['code'] = 1008; $rep['error'] = 'Error parameters'; reponse($rep);}
しかし、失敗した場合に返されるエラーメッセージは異なります。 また、空であると判断する必要がありますが、間違っているわけではありません
したがって、それを完全に理解するには、これが最善ではないと思います。いくつか調整したので全体的な動作は問題ありませんが、最適化できる部分はあるはずです
ちなみに、私の場合は実際に16件の関数を書くのはかなり面倒ですが、この方法で学びました。お二人とも