2014-01-31 1 views
0

Привет У меня есть следующий кодsqlsrv_query отсутствует первый результат в то время как петли

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

она работает во многих других местах, но по какой-то причине в цикле в то время как, кажется, отсутствует первый результат каждый раз, когда его называют ,

ответ

1

Я думаю, это потому, что вы бежите

sqlsrv_fetch($stmt); 

Какой извлекает первый результат и после запуска

sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC) 

, который продолжает извлечение второго результата.

Просто удалите первую выборку.

+0

блестящее спасибо, все отсортировано –

+0

Если мой ответ помог вам, пожалуйста, проголосуйте за него. Благодарю. –

+0

+1 для короткого ответа – sergio

Смежные вопросы