Pesquisei em inúmeros site a respeito de paginação PHP e MSSQL e percebi que é um assunto pouco discutido e até mesmo a falta de exemplos para auxiliar nos.
Então estou com um problema quando retorna os dados e começa o WHILE.
Abaixo segue o código:
<?php
require_once("conecta.php");
if ((!isset($_GET['pagenum'])) || (!is_numeric($_GET['pagenum'])) || ($_GET['pagenum'] < 1)) { $pagenum = 1; }
else { $pagenum = $_GET['pagenum']; }
$result = mssql_query ("SELECT * FROM portabilidade WHERE CONVERT(VARCHAR(50),subscription_activation_timestamp,111) BETWEEN CONVERT(VARCHAR(50),'$datainitial',111) AND CONVERT(VARCHAR(50),'$datafinal',111) order by '$ordenar' asc") or die(mssql_error());
$rows = mssql_num_rows($result);
//Nr resultados mostrado por página
$page_rows = 4;
//Retorna o nr da útlima linha
$last = ceil($rows/$page_rows);
//Checa se está na ultima linha
if (($pagenum > $last) && ($last > 0)) { $pagenum = $last; }
//Define a range para mostrar na consulta
$max = ($pagenum - 1) * $page_rows;
//Substitui o LIMIT do mysql
$result2 = ("select * from (
select top $max * from (
select top $page_rows * from portabilidade WHERE CONVERT(VARCHAR(50),subscription_activation_timestamp,111) BETWEEN CONVERT(VARCHAR(50),'$datainitial',111) AND CONVERT(VARCHAR(50),'$datafinal',111)
order by '$ordenar' asc
) as newtbl order by '$ordenar' desc
) as newtbl2 order by '$ordenar' asc");
//LINE 50 ONDE APRESENTA O ERRO
while($l = mssql_fetch_array($result2))
{
$id = $l["portabilidadeID"];
$tn = $l["subscription_tn"];
$rn = $l["subscription_rn1"];
$eot = $l["subscription_recipient_eot"];
$spid = $l["subscription_recipient_sp"];
$cnl = $l["subscription_new_cnl"];
$lnp = $l["subscription_lnp_type"];
$line = $l["subscription_line_type"];
$status = $l["status"];
$reason = $l["subscription_download_reason"];
echo "<tr style='text-align: center; font-weight: normal;'>\n";
echo " <td>$tn</td>\n";
echo " <td>$rn</td>\n";
echo " <td>$eot</td>\n";
echo " <td>$spid</td>\n";
echo " <td>$cnl</td>\n";
echo " <td>$lnp</td>\n";
echo " <td>$line</td>\n";
echo " <td>$status</td>\n";
echo " <td>$reason</td>\n";
echo "</tr>\n";
}
//echo "<p>";
// MOstra a pg que estamos e o nr total de pgs
echo " --Page $pagenum of $last-- <p>";
// Primeiro checa se está na página um, caso contrátio cria o previuous
if ($pagenum == 1) { }
else
{
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> ";
echo " ";
$previous = $pagenum-1;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> ";
}
//Apenas um espaço
echo " ---- ";
//A mesmo coisa do previous mas agora com avançar
if ($pagenum == $last)
{
}
else {
$next = $pagenum+1;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next -></a> ";
echo " ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last ->></a> ";
}
?>
Não entendi direito o porque apresenta esse erro, uma vez que essa função fecth_array retorna os dados de uma pesquisa.
Pergunta
Ricardo Nogueira
Olá pessoal,
Mais uma vez recorro à ajuda de vocês.
Pesquisei em inúmeros site a respeito de paginação PHP e MSSQL e percebi que é um assunto pouco discutido e até mesmo a falta de exemplos para auxiliar nos.
Então estou com um problema quando retorna os dados e começa o WHILE.
Abaixo segue o código:
Não entendi direito o porque apresenta esse erro, uma vez que essa função fecth_array retorna os dados de uma pesquisa.
Grato pela atenção
Ricardo
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.