©
This document uses PHP Chinese website manual Release
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_field_seek — Seeks to the specified field offset
$result
, int $field_offset
)Seeks to the specified field offset. If the next call to mssql_fetch_field() won't include a field offset, this field would be returned.
result
The result resource that is being evaluated. This result comes from a call to mssql_query() .
field_offset
The field offset, starts at 0.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 Using mssql_field_seek() on the example for mssql_fetch_field()
<?php
// Connect to MSSQL and select the database
mssql_connect ( 'MANGO\SQLEXPRESS' , 'sa' , 'phpfi' );
mssql_select_db ( 'php' );
// Send a select query to MSSQL
$query = mssql_query ( 'SELECT * FROM [php].[dbo].[persons]' );
// Construct table
echo '<h3>Table structure for \'persons\'</h3>' ;
echo '<table border="1">' ;
// Table header
echo '<thead>' ;
echo '<tr>' ;
echo '<td>Field name</td>' ;
echo '<td>Data type</td>' ;
echo '<td>Max length</td>' ;
echo '</tr>' ;
echo '</thead>' ;
// Dump all fields
echo '<tbody>' ;
for ( $i = 0 ; $i < mssql_num_fields ( $query ); ++ $i ) {
// Fetch the field information, notice the
// field_offset parameter is not set. See
// the mssql_field_seek call below
$field = mssql_fetch_field ( $query );
// Print the row
echo '<tr>' ;
echo '<td>' . $field -> name . '</td>' ;
echo '<td>' . strtoupper ( $field -> type ) . '</td>' ;
echo '<td>' . $field -> max_length . '</td>' ;
echo '</tr>' ;
// Move the internal seek pointer to the next
// row in the result set
mssql_field_seek ( $query , $i + 1 );
}
echo '</tbody>' ;
echo '</table>' ;
// Free the query result
mssql_free_result ( $query );
?>
[#1] kevin_tom at hotmail dot com [2004-05-15 14:47:08]
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