2016-06-30 7 views
-5

に等しい場合、私はstatusはdbテーブルにに設定されているものに応じて、いくつかのテキストを表示しようとしています。PHP変数が

は、以下の私のコードを参照してください:

$result=mysql_query("SELECT * FROM hr_recruitment_stages where vacancy_ref='$vacancyref' order by added_on DESC limit 0,1")or die('ERROR 315'); 
$row = mysql_fetch_array($result); 
$stage_name = $row ['stage_name']; 

if($stage_name['stage_name'] == 'Shortlisting') { echo"Shortlisting"; } else { echo"Not Shortlisting"; } ?> 

をしかしこのdoesntのはstage_nameがShortlistingに等しい場合でも、それはNot Shortlistingとして表示されるよう適切に動作しているようです。

なぜでしょうか?

+1

あなたはこれをデバッグするために何をしましたか? '$ result'の値は何ですか? '$ row'の値は何ですか? '$ stage_name'の値は何ですか? '$ stage_name ['stage_name']'の値は何ですか? 'print'と' print_r'はあなたの友達です。 – Quentin

+3

**警告**:あなたはPHPの最新バージョンから完全**削除されました[**時代遅れ**データベースAPI](http://stackoverflow.com/q/12859942/19068)を使用しています。 [現代的な代替品](http://php.net/manual/en/mysqlinfo.api.choosing.php)を使用してください。 – Quentin

+1

これはどのように機能しないのですか? '$ row ['stage_name']'に実際に何が入っているか確認しましたか?あなたは「)Shortlisting''、stage_nameのあまりに – andrewsi

答えて

1

その変数の型の間違い。割り当てられた変数を確認し、配列全体ではなく配列要素を割り当てました。だから以下のようにしてみてください。

<?php 
    $result = mysql_query("SELECT * FROM hr_recruitment_stages where vacancy_ref='$vacancyref' order by added_on DESC limit 0,1") or die('ERROR 315'); 
    $row = mysql_fetch_array($result); 
    $stage_name = $row['stage_name']; 

    if($stage_name == 'Shortlisting') { 
    echo"Shortlisting"; 
    } else { 
    echo"Not Shortlisting"; 
    } 
?> 

PHP配列の理解については、この記事を参照してください。
http://php.net/manual/en/language.types.array.php

+0

素晴らしい、感謝:) – Shane