我正在尝试执行一些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-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); } }
答案 0 :(得分:0)
这是什么:
if( $count Val in Get_Val : " . $row['val'];
return $row['val'];
}
你确定$ _POST ['val']是存储在db中的有效值吗?
答案 1 :(得分: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);
}
}
...