0

我正在尝试执行一些 php 代码行,但似乎 tey 没有按要求的顺序执行。这是一个代码片段:-

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 条件为真,但是当我执行代码时,正在执行 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());
    如果($结果)
    {   
        $count = mysql_num_rows($result);
        if( $count == 0 ) //插入名称和返回值
        {
            $query_x = "INSERT INTO store(name) VALUES('" . $a . "')";
            $result = mysql_query( $query_x ,$link) 或死(mysql_error());
            if($result)//如果插入了新名称则返回'val'
            {
            Get_Val($sid, $a,$link);
            }
        }
        别的
        {
            $row = mysql_fetch_assoc($result);
            echo "Get_Val 中的 Val:"。$row['val'];
            返回 $row['val'];
        }
    }
    别的
    {
        echo "发生意外错误...!!!";
        退出(0);
    }
}
4

2 回答 2

0

这是怎么回事:

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

您确定 $_POST['val'] 是存储在数据库中的有效值吗?

于 2012-04-08T17:46:08.543 回答
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 回答