2012-04-08 27 views
0

PHPコードをいくつか実行しようとしていますが、必要な順序で実行されていないようです。ここでは、コードスニペットです: -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(に戻る前に、値をエコーする場合)には、もし条件が真であることを意味し、有効な引数のいくつかのセットのための正の数を示しているが、ときElse部分が実行されているコードを実行します。出力は順番に表示されますが、一貫していません。私は問題を明確にして願っています。 何か助けていただければ幸いです。ありがとう!ここで はGet_Val()関数である: - これで何

 
function Get_Val($sid, $a, $link) 
{ 
    //check is name is already present in table 
    $query = "SELECT val FROM store WHERE name = \"" . $a . "\""; //val is auto incremented in sql 
    $result = mysql_query($query ,$link) or die(mysql_error()); 
    if($result) 
    { 
     $count = mysql_num_rows($result); 
     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' 
      { 
      Get_Val($sid, $a,$link); 
      } 
     } 
     else 
     { 
      $row = mysql_fetch_assoc($result); 
      echo "Val in Get_Val : " . $row['val']; 
      return $row['val']; 
     } 
    } 
    else 
    { 
     echo "Unexpected Error Occured...!!!"; 
     exit(0); 
    } 
}
+0

'$ val'の値は何ですか? –

+3

'Get_Val()'のコードをアップロード – Starx

+0

'if(isset($ val))'も試してください。 'Get_Val()'が値を返すのですか? – ngen

答えて

0

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

あなたは$ _POST [ 'valが'] DBに格納された有効な値であることを確信していますか?

+0

私はそれを修正しました。 –

+0

新しい値を挿入した後、再帰を伴わないでください.CPUサイクルと無駄なSQLクエリを無駄にします。最後に挿入されたIDを返します。 –

+0

これは手動で挿入しないためです。 、私はちょうど '名前'を挿入しており、 'val'は自動的に更新されます。最後の 'val'をテーブルで取得しようとしても、別のSQLクエリが必要です。だから、クエリを削除することはできません。再帰を使用せずに新しく 'val'を挿入するのを手伝ってください。再帰を削除して代わりに別のクエリを使用するとどうなりますか? –

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); 
    } 
} 
...