可能是一个newb问题,但是当我一个接一个地放入两个PHP sqlsrv_fetch_array语句时,第二个语句从来都不起作用。 它就会返回空白。
因此,如果我创建两个简单的下拉菜单,从sqlsrv_fetch_array调用它们的值,那么我将在第一个下拉菜单中获得所有值,但在第二个下拉菜单中没有。
<?php
echo "<select>";
while( $PersonRow = sqlsrv_fetch_array( $PersonDropdownArray, SQLSRV_FETCH_BOTH))
{
echo "<option value=\"".$PersonRow['Person']."\">".$PersonRow['Person']."</option>";
}
echo "</select>" ;
echo "<select>";
while( $PersonRow = sqlsrv_fetch_array( $PersonDropdownArray, SQLSRV_FETCH_BOTH ))
{
echo "<option value=\"".$PersonRow['Person']."\">".$PersonRow['Person']."</option>";
}
echo "</select>" ;
?>
在第一次运行数组中的所有值之后,它似乎没有任何东西可以运行第二次,所以我的第二个下拉菜单是空白的。 但是有人知道如何重置它,以便在第二次调用sqlsrv_fetch_array时回到数组的开头吗?
在它第一次遍历数组中的所有值之后,它似乎没有任何东西可以在第二次遍历
是的,在您获取所有行之后,就没有更多的行了。 只要取一次,把你需要的存起来。 给出代码的一种方法是:
$options = '';
while( $PersonRow = sqlsrv_fetch_array( $PersonDropdownArray, SQLSRV_FETCH_BOTH))
{
$options .= "<option value=\"".$PersonRow['Person']."\">".$PersonRow['Person']."</option>";
}
echo "<select>$options</select>";
echo "<select>$options</select>";
仅供参考,您需要给select输入一个名称,以便在提交时获得它们。
下面是怎么做的:
我只需通过重新声明以下内容,将查询重新分配到已有的数组:
$PersonDropDownArray=sqlsrv_query($CONN,$PersonDropDownQuery);
如追随者所言:
<?php
echo "<select>";
while( $PersonRow = sqlsrv_fetch_array( $PersonDropdownArray, SQLSRV_FETCH_BOTH))
{
echo "<option value=\"".$PersonRow['Person']."\">".$PersonRow['Person']."</option>";
}
echo "</select>" ;
$PersonDropdownArray = sqlsrv_query( $conn, $PersonDropdownQuery);
echo "<select>";
while( $PersonRow = sqlsrv_fetch_array( $PersonDropdownArray, SQLSRV_FETCH_BOTH ))
{
echo "<option value=\"".$PersonRow['Person']."\">".$PersonRow['Person']."</option>";
}
echo "</select>" ;
?>