(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_field_seek — Setzt einen Feld-Offset
Sucht bis zum angegebenen field_offset. Wenn der nächste Aufruf von mssql_fetch_field() keinen Feld-Offset enthält, wird dieses Feld zurückgegeben.
Der Bezeichner des Ergebnisses, das ausgewertet wird. Dieses Ergebnis stammt von einem Aufruf von mssql_query().
Der Offset des Feldes, beginnend bei 0
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiel #1 Die Verwendung von mssql_field_seek() im Beispiel für mssql_fetch_field()
<?php
// Mit MSSQL verbinden und Datenbank auswählen
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');
// Eine Select-Anfrage an MSSQL senden
$anfrage = mssql_query('SELECT * FROM [php].[dbo].[persons]');
// Eine Tabelle bauen
echo '<h3>Tabellenstruktur für \'persons\'</h3>';
echo '<table border="1">';
// Tabellenkopf
echo '<thead>';
echo '<tr>';
echo '<td>Feldname</td>';
echo '<td>Datentyp</td>';
echo '<td>Max. Länge</td>';
echo '</tr>';
echo '</thead>';
// Alle Felder anzeigen
echo '<tbody>';
for ($i = 0; $i < mssql_num_fields($anfrage); ++$i) {
// Feldinformationen abrufen; beachten Sie: der
// Parameter field_offset ist nicht gesetzt.
// Siehe Aufruf von mssql_field_seek weiter unten.
$feld = mssql_fetch_field($anfrage);
// Eine Zeile ausgeben
echo '<tr>';
echo '<td>' . $field->name . '</td>';
echo '<td>' . strtoupper($field->type) . '</td>';
echo '<td>' . $field->max_length . '</td>';
echo '</tr>';
// Den internen Suchzeiger zum nächsten
// Datensatz des Ergebnisses verschieben
mssql_field_seek($anfrage, $i + 1);
}
echo '</tbody>';
echo '</table>';
// Den Ergebnisspeicher freigeben
mssql_free_result($anfrage);
?>
Don't know this would help.
If you are using mssql to loop through a web page. Here is how to do it:
Suppose you want to select a few fields from t1 joining to t2
$numPerPage=10;
if(empty($offset))
$offset=0;
if($next_x){
$offset+=$numPerPage;
}
if($previous_x){
$offset-=$numPerPage;
}
$qry_string = "SELECT DISTINCT TOP $numPerPage t1.field1, t1.field2 from t1 LEFT
JOIN t2 ON t2.field1=t1.field1
WHERE t2.another_field='specific_val'
AND t1.fields
NOT IN
(SELECT DISTINCT TOP $offset tmpT1.field1
FROM t1 AS tmpT1 LEFT
JOIN t2 ON t2.field1=tmpT1.field1
WHERE t2.another_field='specific_val'
)";
// then run the above $qry_string using the while loop