Php sqlsrv_查询在while循环中缺少第一个结果
嗨,我有以下代码Php sqlsrv_查询在while循环中缺少第一个结果,php,php4,Php,Php4,嗨,我有以下代码 function dropDownMenuMobile($parentId,$siteId,$root=false) { $menu = ""; $sql = "EXEC spGenerateDropdownMenuMobile ".$parentId.",".$siteId; $stmt = sqlsrv_query($GLOBALS['conn'],$sql); sqlsrv_fetch($stmt); if($stmt &&
function dropDownMenuMobile($parentId,$siteId,$root=false)
{
$menu = "";
$sql = "EXEC spGenerateDropdownMenuMobile ".$parentId.",".$siteId;
$stmt = sqlsrv_query($GLOBALS['conn'],$sql);
sqlsrv_fetch($stmt);
if($stmt && sqlsrv_has_rows($stmt) === true)
{
$menu .= "<ul>";
while($rs = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC))
{
$urlLink = str_replace("<br />"," ",$rs[2]);
$urlLink = replaceIllegalChars($urlLink);
$actualLink = (strlen($rs[7]) > 2) ? $rs[7] : $rs[0]."/".makeSEurl($urlLink);
$liclass = ($rs["5"] > 0)?"expand":"";
$menu .= "<li class=\"".$liclass."\">";
$menu .= "<a href=\"/".$actualLink."\">".$rs[2]."</a>";
$menu .= ($rs[5] > 0) ? dropDownMenuMobile($rs[0],$siteId,"") : "";
$menu .= "</li>";
}
$menu .= "</ul>";
}
return $menu;
}
函数dropDownMenuMobile($parentId,$siteId,$root=false)
{
$menu=“”;
$sql=“EXEC spGenerateDropdownMenuMobile”$parentId.,“$siteId;
$stmt=sqlsrv_查询($GLOBALS['conn',$sql);
sqlsrv_fetch($stmt);
如果($stmt&&sqlsrv_有_行($stmt)==true)
{
$menu.=“”;
而($rs=sqlsrv\u fetch\u数组($stmt,sqlsrv\u fetch\u NUMERIC))
{
$urlink=str_replace(“
,”,$rs[2]);
$urlink=replaceIllegalChars($urlink);
$actualLink=(strlen($rs[7])>2)$rs[7]:$rs[0]。“/”。makeSEurl($urlink);
$liclass=($rs[“5”]>0)?“扩展”:“;
$menu.=“- ”;
$菜单=“”;
$menu.=($rs[5]>0)?dropDownMenuMobile($rs[0],$siteId,”):;
$menu.=“
”;
}
$menu.=“
”;
}
返回$menu;
}
它在许多其他地方运行,但由于某些原因,在while循环中,每次调用它时似乎都会丢失第一个结果 我想是因为你跑了
sqlsrv_fetch($stmt);
它将在运行后获取第一个结果
sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC)
继续获取第二个结果
只需删除第一个fetch