Visto che non sono presenti strumenti per il paging ho pensato di fare così:
codice:
$pagina_corrente = 1;
$elementi_pagina = 3;
$query = "
if exists (select * from dbo.sysobjects
where id = object_id(N'[dbo].[paging]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
drop table [dbo].[paging]
end
CREATE TABLE [dbo].[paging] (
[ID] [int] NOT NULL ,
[user] [varchar] (50) null,
[testo_client] [varchar] (500) null,
[risposta_server] [varchar] (500) null,
[data] [smalldatetime] null,
[valutazione] [int] null,
[url] [nvarchar] (255) NULL
) ON [PRIMARY]
select count(*) as numero_elementi
from WEB_LibroOspiti
insert into paging
select top ".$elementi_pagina*$pagina_corrente." *
from WEB_LibroOspiti
where [user] like 'f%'
order by [user]
select top $elementi_pagina *
from WEB_LibroOspiti
left join paging on
WEB_LibroOspiti.id = paging.id
where WEB_LibroOspiti.[user] like 'f%' and paging.id is null
order by WEB_LibroOspiti.[user]
drop table [dbo].[paging]
";
$result = mssql_query( $query );
$line = mssql_fetch_row($result);
$numero_elementi = $line[0];
$pagine = round($numero_elementi / $elementi_pagina);
echo "Numero elementi:$numero_elementi
Pagine:$pagine
Elementi per pagina:$elementi_pagina
";
mssql_next_result($result);
mssql_next_result($result);
echo mssql_num_rows( $result );
for ($i = 0; $i < mssql_num_rows( $result ); ++$i)
{
$line = mssql_fetch_row($result);
print( "$line[0] - $line[1]
\n");
}
mssql_close($db);
che dite è troppo oneroso dal punto di vista dell'elaborazione?
forse è meglio scaricare tutto il recordset, saltare al record e da li ciclare?