It seems that when you use the MSSQL fetch_* functions you need to manually reset the $result 's internal pointer when doinging a while loop.
i.e.the below seems to only print out the first set. I don't remember this being the case with mysql, but it makes sense that it would do the same.
while ($or_date_info = mssql_fetch_assoc($result)){
echo '1st pass<BR>';
print_r($or_date_info);
}
while ($or_date_info = mssql_fetch_assoc($result)){
echo '2nd pass<BR>';
print_r($or_date_info);
}
Blaine Garrett
http://artattack.to?zombie
mssql_fetch_row
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_fetch_row — Retorna uma matriz enumerada
Descrição
array mssql_fetch_row
( resource
$result
)mssql_fetch_row() retorna uma linha do resultado identificado por result. A linha é retornada como uma matriz. Cada coluna do resultado é guardada com um índice numérico, começando no 0.
A próxima chamada para mssql_fetch_row() deve
retornar a próxima linha do conjunto de resultados, ou FALSE
se não houver mais linhas.
Parâmetros
-
result -
O resource do resultado que foi avaliado. Este resultado é retornado ao chamar a mssql_query().
Valor Retornado
Retorna um array que corresponde a linha obtida, ou FALSE se não há
mais linhas.
Notas
Nota: Esta função assimila campos NULL para o o
NULLdo PHP.
Veja Também
- mssql_fetch_array() - Retorna uma linha como uma matriz associativa, matriz numérica ou ambas
- mssql_fetch_object() - Devolve a linha como um objeto
- mssql_data_seek() - Move o ponteiro interno da linha
- mssql_result() - Retorna dados do resultado
zombie(at)artattack(dot)to ¶
9 years ago
siivv at yahoo dot com ¶
11 years ago
jus do this instead.. no for loop necessary
while($line = mssql_fetch_row($result)){
print "$line[0],$line[1]"; // etc.
}
no need to have a whole extra variable $i tossed in
will_ <sql at mookandblanchard dot com> ¶
11 years ago
It took me way too long to notice the MySQL error in the note above (way tooo late and not enough sleep). Here's what I hacked up:
<?php
$hostname = "localhost";
$username = "username";
$password = "password";
$dbName = "database";
MSSQL_CONNECT($hostname,$username,$password) or DIE("DATABASE FAILED TO RESPOND.");
mssql_select_db($dbName) or DIE("Table unavailable");
$query = "SELECT * FROM dbo.table";
$result = mssql_query( $query );
for ($i = 0; $i < mssql_num_rows( $result ); ++$i)
{
$line = mssql_fetch_row($result);
print( "$line[0] - $line[1]\n");
}
?>
Thanks,
will_ @ irc.openprojects.net#php
