Создайте два вопроса sqlsrv_fetch_array один за другим - PullRequest
0 голосов
/ 14 июля 2020

Вероятно, новый вопрос, но когда я помещаю два оператора 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>" ;
?>

Похоже, что после первого прогона по всем значениям в массиве ему нечего делать во второй раз, поэтому мое второе выпадающее меню пусто. Но кто-нибудь знает, как его сбросить, чтобы go вернулся к началу массива, я второй раз вызываю sqlsrv_fetch_array?

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Похоже, что после первого прогона всех значений в массиве ему уже нечего делать во второй раз

Да, после того, как вы получить все строки, которых больше нет. Просто скачайте один раз и сохраните то, что вам нужно. Один из способов с учетом вашего кода:

$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>";

FYI, вам нужно дать выбранным входам имя, чтобы получить их при отправке.

0 голосов
/ 14 июля 2020

Вот как это сделать:

Мне просто нужно было переназначить запрос массиву, который у меня уже был, повторно указав следующее:

$ 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>" ;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...