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
mssql_field_seek
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
mssql_field_seek — Apunta al número de campo especificado
Descripción
bool mssql_field_seek
( resource
$result
, int $field_offset
)Apunta al número de campo especificado. Si la próxima llamada a la función mssql_fetch_field() no incluye un número de campo, se retornará este campo.
Parámetros
-
result -
El resultado que está siendo evaluado. Este resultado procede de una llamada a la función mssql_query().
-
field_offset -
La posición del campo, empezando por 0.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Ejemplos
Ejemplo #1 Ejemplo de uso de mssql_field_seek() para mssql_fetch_field()
<?php
// Conectar a MSSQL y seleccionar la base de datos
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');
// Enviar una consulta a MSSQL
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');
// Construir una tabla
echo '<h3>Estructura de tabla para \'persons\'</h3>';
echo '<table border="1">';
// Cabecera de la tabla
echo '<thead>';
echo '<tr>';
echo '<td>Nombre de campo</td>';
echo '<td>Tipo de dato</td>';
echo '<td>Longitud max.</td>';
echo '</tr>';
echo '</thead>';
// Volcar todos los campos
echo '<tbody>';
for ($i = 0; $i < mssql_num_fields($query); ++$i) {
// Lee la información del campo, nótese que
// el parámetro que indica el número de campo no está configurado. Ver
// la llamada a mssql_field_seek que se realiza a posteriori
$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>';
// Desplazar el apuntador interno a la próxima
// fila dentro del resultado
mssql_field_seek($query, $i + 1);
}
echo '</tbody>';
echo '</table>';
// Liberar el recurso
mssql_free_result($query);
?>
kevin_tom at hotmail dot com ¶
9 years ago
