0
while ($row = mysql_fetch_array($results)) {
    $results_array[$row['post_id']] = $row;   

    $arr = array($row[2] => $row[3]); 

    $location = trim($arr[cp_check_where_to_show_video]);
    $video    = trim($arr[cp_embed_video]);

    echo $video;

    if($location=='Video of the Day')
    { 
        echo $location."\n";
        echo "---";
        echo $video; 
        echo "---";  
    } 
}

Output:
    Video Text
    Video of the Day
    -------
    NULL

つまりね。上記のコードがあるとします。「ビデオ」はデータベースから派生したものです。これまでのところ、if ステートメントを追加するまで、クエリに問題はありません。

最初の echo は期待どおりの結果を出力しますが、if ステートメント内で "video" が NULL になります。if ステートメントに入って、$video 以外のものを出力することができました。

上記のステートメントで何が間違っていたのか、またはおそらく間違っている可能性があることを誰か教えてください。変。

4

3 に答える 3

3

多くの場合、人々は比較の=代わりに忘れて使用します。==条件をに設定します。条件にあるtrue場合$videoは、誤ってに設定している可能性があり$videoますnull

于 2012-10-22T03:03:02.330 に答える
1

(本当にコメントですが、コードを追加するのでここに入れます)

デバッグ ソリューション 1: エラー レポートを追加します。直前に追加

error_reporting(E_ALL);
ini_set('display_errors', 'on');

そしてそれがあなたに与えるものを見てください。

デバッグ ソリューション 2:

「編集者が見えない奇妙な文字を挿入した」場合が考えられます。if ステートメント内の行を完全に削除し (行全体を選択して [削除] をクリック)、$video を参照する行を手動で再入力することをお勧めします (コピー/貼り付けなし)。隠し文字が発生します - そして私が考えることができる唯一の解決策.

于 2012-10-22T04:56:05.550 に答える
1

わかりませんが、こんな感じかもしれません。

初めて $video をエコーし​​ますが、if. 2回目はNULLなので、何もエコーしませんが、if var_dumpsNULLの中に入ります

編集

たとえばecho '----';、あなたの上に置いecho $video;て、出力が次のようなものかどうかを確認します

----
video text
----
Video of the Day
NULL

次のようなものがある場合

----
video text
Video of the Day
NULL

それは私にとって完全な謎です。

于 2012-10-22T03:43:31.990 に答える