首页 文章

PHP代码执行序列

提问于
浏览
0

我试图执行一些PHP代码行,但似乎tey没有按要求的顺序执行 . 这是一段代码片段: -

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

当我在函数Get_Val()中返回之前回显该值时,它显示某些有效参数集的正数,这意味着If-condition为true,但是当我执行代码时,正在执行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);
    }
}

2 回答

  • 0

    这有什么用的:

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

    你确定$ _POST ['val']是一个存储在db中的有效值吗?

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

相关问题