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
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_fetch_row — Liefert einen Datensatz als indiziertes Array
Diese Funktion wurde in PHP 7.0.0 REMOVED (entfernt).
Alternativ können folgende Features verwendet werden:
$result
) : array
mssql_fetch_row() liefert einen Datensatz von dem
Ergebnis, das zur angegebenen Ergebniskennung result
gehört. Der Datensatz wird als Array zurückgegeben. Jedes Feld des
Ergebnisses wird in einem Array-Offset gespeichert, der bei Offset 0
beginnt.
Ein nachfolgender Aufruf von mssql_fetch_row() gibt den
nächsten Datensatz aus dem Ergebnis zurück oder FALSE
, wenn es keine
weiteren Datensätze gibt.
result
Der Bezeichner des Ergebnisses, das ausgewertet wird. Dieses Ergebnis stammt von einem Aufruf von mssql_query().
Gibt ein Array mit dem gelieferten Datensatz zurück oder FALSE
, wenn es
keinen weiteren Datensatz gibt.
Beispiel #1 mssql_fetch_row()-Beispiel
<?php
// Mit MSSQL verbinden und Datenbank auswählen
$verbindung = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $verbindung);
// Die auszuführende Anfrage
$anfrage = mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\'', $verbindung);
// Schlug die Anfrage fehl?
if (!$anfrage) {
die('MSSQL-Fehler: ' . mssql_get_last_message());
}
// Den Datensatz abrufen
$datensatz = mssql_fetch_row($anfrage);
// 'quote' ausgeben
echo 'Zitat #' . $datensatz[0] . ': "' . $datensatz[1] . '"';
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Zitat #42: "Die Antwort auf alles..."
Hinweis: Diese Funktion setzt NULL-Felder auf den PHP Wert-
NULL
.
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
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
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