0

PHP コードのいくつかの行を実行しようとしていますが、必要な順序で実行されていないようです。ここにコードスニペットがあります:-

if( !empty($_POST['val']) )
               {
                    $val = Get_Val($sid, $_POST['val'], $lnk);
                    if($val)
                    { 
                        echo "<br />Here Value : " . $val;
                    }
                    else
                    {
                        echo "Invalid Value.";
                    }
              }

関数 Get_Val() に戻る前に値をエコーすると、有効な引数のセットに対して正の数が表示されます。これは、If 条件が true であることを意味しますが、コードを実行すると Else 部分が実行されます。出力は順番に表示されますが、一貫性がありません。問題が明確になったことを願っています。いくらでも助けていただければ幸いです。ありがとう!Get_Val() 関数は次のとおりです。

関数 Get_Val( $sid, $a, $link)
{
    //名前がテーブルに既に存在するかどうかを確認します
    $query = "SELECT val FROM store WHERE name = \"" . $a . "\""; //val は sql で自動インクリメントされます
    $result = mysql_query( $query ,$link ) or die( mysql_error());
    if($結果)
    {   
        $count = mysql_num_rows($result);
        if( $count == 0 ) //名前と戻り値を挿入
        {
            $query_x = "INSERT INTO store(name) VALUES('" . $a . "')";
            $result = mysql_query( $query_x ,$link ) or die( mysql_error());
            if($result)//新しい名前が挿入された場合は、'val' を返します
            {
            Get_Val($sid, $a,$link);
            }
        }
        そうしないと
        {
            $row = mysql_fetch_assoc( $result );
            echo "Val in Get_Val : " . $row['val'];
            $row['val']; を返します。
        }
    }
    そうしないと
    {
        echo "予期しないエラーが発生しました...!!!";
        終了 (0);
    }
}
4

2 に答える 2

0

$count == 0 の場合、Get_Val は値を返しません。再帰呼び出しの前に return ステートメントを追加します。このような:

...
if( $count == 0 ) //insert name and the return val
{
    $query_x = "INSERT INTO store(name) VALUES('" . $a . "')";
    $result = mysql_query( $query_x ,$link ) or die( mysql_error());
    if($result)//If new name inserted then return the 'val'
    {
       return Get_Val($sid, $a,$link);
    }
}
...
于 2016-01-29T13:49:45.860 に答える
0

これは何ですか:

if( $count  Val in Get_Val : " . $row['val'];
    return $row['val'];
}

$_POST['val'] がデータベースに格納されている有効な値であると確信していますか?

于 2012-04-08T17:46:08.543 に答える