-1

だから、私はまだphpコーディング、学習などに慣れていないので、これが以前に尋ねられた場合はごめんなさい。勝手に書いているので、間違っていたらまたすみません。

データベースから情報を取得したいのですが、それが数値の場合は代わりにテキストを表示します。だから、私はこのようなものがうまくいくと思いました(特定の単語で1〜12をチェックする必要があります):

 if(mysql_fetch_assoc($result) == 1){
 echo "student";
 }else
  "generic error";

または私は1 - 12をしなければならないので

if($row_members['ulevel'] == 1){
echo "Student";
}else
"generic error";

ユーザーが登録すると、挿入の一部として番号が割り当てられるため、エラーは発生しません。だから私はそれがマルチパートの質問だと思います。ulvel をチェックしてテキストとして出力するステートメントを作成するにはどうすればよいですか。1 人がオブザーバー、12 人が管理者です。

4

5 に答える 5

2

mysql_fetch_assoc() は整数値を返さず、文字列の連想配列を返します。

ステータスを確認するには、if 式の中に式を入れるだけです。

$row = mysql_fetch_assoc($result);
if($row['ulevel'] == 1){
 echo "student";
} else
  "generic error";

複数行間でチェックする場合

while($row = mysql_fetch_assoc($result)) {
    if($row['ulevel'] == 1){
     echo "student";
    } else
      "generic error";
}
于 2012-04-05T05:55:37.600 に答える
0

mysql_fetch_assoc($result)連想配列をフェッチするため、1と比較しても機能しません。nullであってはならないという意味であれば、is_null関数を使用できます。

配列内のすべての要素が数値であることを確認する場合は、次のようにループを使用して配列を反復処理できます。

while($row=mysql_fetch_assoc($result))
{    foreach ($row as $value) {
       if($value>=1 && $value<=12)
     {echo("student");

    }

    else 
    echo("Generic error");
    }

 }    
于 2012-04-05T06:05:51.673 に答える
0

1つのアプローチは次のとおりです。

while($row = mysql_fetch_array($res)) {  
  if(is_int($row['ulevel'))  /* Or you can some other logic ex: 
                                $row['ulevel'] < 12 */
     print "Student";  
   else     
      print "Generic error!"  
}  
于 2012-04-05T05:52:51.650 に答える
0
mysql_fetch_assoc($result) == 1

mysql_fetch_assoc は配列を返すため、機能しません。そのため、配列 == 1 かどうかを確認していますが、決してそうなることはありません。

テーブルに int 型の ulevel と呼ばれるフィールドが含まれていると仮定し、$results と呼ばれる結果セットへのクエリを既に実行していると仮定します。

while($result = mysql_fetch_assoc($results)){
  if($row["ulevel"] == 1){
    echo "student"
  }
  else if($row["ulevel"] == 2){//do something else

  }
  .....
  else{
    echo "Generic Error";
  }
}

より良い解決策は、さまざまなユーザー タイプを配列に格納することです。

$user_levels = array(1=>"Student",2=>"another".....);

次に、次のことができます。

echo $user_levels[$result["u_level"]];
于 2012-04-05T05:57:01.187 に答える
0

これを試して

 while($row=mysql_fetch_assoc($result))
 {    
      if(in_array(1 , $row)){
         echo 'student';
         echo '<br>';  
      }else if(in_array(12,$row)){
         echo 'Admin';
         echo '<br>';  
      }else{
         echo 'Else';
         echo '<br>';  
      }

 }    
于 2012-04-05T06:14:16.297 に答える