Ir para conteúdo
Fórum Script Brasil

Ricardo Nogueira

Membros
  • Total de itens

    8
  • Registro em

  • Última visita

Tudo que Ricardo Nogueira postou

  1. ESerra como eu faria isso? Guardar essa variável para que possa ser utilizada novamente? Realmente o que percebi foi isso mesmo, mas não sei como poderia fazer isso. Abraços Ricardo
  2. ESerra Obrigado pela ajuda, Eu entendi o problema, e retirei essa passagem e fiz a verificação do formulário na mesma página que submete o form. Agora começou a paginar, verifico que consigo clicar no next, fisrt, previous e estão funcionando, entretanto tão logo submeto o formulário se clicar em LAST então irá para a última página. Mas após isso o LAST fica com o valor '0' e o next sempre acrescenta páginas a mais, ex. Digamos que o total de páginas fosse 20. Tão logo faço a paginação e clico e LAST irá para a página 20, mas se observo o valor de NEXT está 21 e se clicar vai aparecendo páginas e páginas. Ao passo que o valor de LAST fica zerado e se clicar retorna para a página 1. Não dá para entender. Segue o código abaixo: <html> <head> <link rel="stylesheet" type="text/css" href="mystyles.css" /> </head> <body> <?php include_once("conecta.php"); if ((!isset($_GET['pagenum'])) || (!is_numeric($_GET['pagenum'])) || ($_GET['pagenum'] < 1)) { $pagenum = 1; } else { $pagenum = $_GET['pagenum']; } $result = mssql_query ("SELECT portabilidadeID,subscription_tn,subscription_rn1,subscription_recipient_eot,subscription_recipient_sp,subscription_new_cnl,subscription_lnp_type,subscription_download_reason, status FROM portabilidade WHERE CONVERT(VARCHAR(50),subscription_activation_timestamp,111) BETWEEN CONVERT(VARCHAR(50),'$datainitial',111) AND CONVERT(VARCHAR(50),'$datafinal',111) ") or die(mssql_error()); $rows = mssql_num_rows($result); $page_rows = 25; $last = ceil($rows/$page_rows); if (($pagenum > $last) && ($last > 0)) { $pagenum = $last; } $max = ($pagenum - 1) * $page_rows; $result2 = mssql_query("select top $page_rows portabilidadeID,subscription_tn,subscription_rn1,subscription_recipient_eot,subscription_recipient_sp,subscription_new_cnl,subscription_lnp_type,subscription_download_reason, status from portabilidade where portabilidadeID not in (select top $max portabilidadeID from portabilidade order by portabilidadeID asc) order by portabilidadeID asc") or die(mssql_error()); ?> <table width="75%" border="0" align=center> <tr> <th scope="col" abbr="Number">Number</th> <th scope="col" abbr="Provider">Provider</th> <th scope="col" abbr="EOT">EOT</th> <th scope="col" abbr="SPID">SPID</th> <th scope="col" abbr="CNL">CNL</th> <th scope="col" abbr="LNP">Number Type</th> <th scope="col" abbr="lnp">Type</th> <th scope="col" abbr="Status">Status</th> <th scope="col" abbr="Reason">Reason</th> </tr> <? echo "<p align=center>"; echo "<font size='1' face='Verdana'>"; echo "Searching from\n"; echo $datainitial; echo "\nto\n"; echo $datafinal; echo "</font>"; echo "</p>"; echo "</font>"; echo "<hr>"; 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>"; Daqui para baixo não sei o porque acontece isso........ echo "<font size='1' face='Verdana'>"; echo " --Page $pagenum of $last-- <p>"; echo "</font>"; ?> </table><br /> <? echo "<hr>"; 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> "; } echo " ---- "; 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> "; } ?> </body> </html> Abraços Ricardo
  3. Obrigado ESerra pela respota. Eu realmente identifiquei que houve um erro na query, dessa forma criei uma outra query logo abaixo: $result2 = mssql_query("select * from (select top $page_rows * from portabilidade where portabilidadeID not in (select top $max portabilidadeID from portabilidade order by portabilidadeID asc) order by portabilidadeID asc) as netwb order by portabilidadeID asc") or die(mssql_error()); Entretanto agora ocorre outro problema: Quando submito o form a primeira página apresenta o resultado e mostra os dados, porém quando clico em NEXT a próxima página retorna em branco. Há alguma coisa errada no código? Help me!!! Abraços Ricardo
  4. 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: <?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. Grato pela atenção Ricardo
  5. Toze, Obrigado pelo help desde já agradeço. Entretanto como uso MSSQL o LIMIT não funciona lá. Mas peguei um código e incrementei, porém a primeira página mostra sem problemas. A partir da segunda não apresenta nada. Tem um item critério que não passa nada. Se você puder me ajudar mais uma vez agradeço. Bem na verdade o critério nesse caso está entre duas data passada $datainitial e $datafinal. <? mssql_connect("localhost", "username", "pass") or die(mssql_error()); mssql_select_db("portabilidade") or die(mssql_error()); $datainitial = "{$_POST["ano1"]}-{$_POST["mes1"]}-{$_POST["dia1"]}"; $datafinal = "{$_POST["ano2"]}-{$_POST["mes2"]}-{$_POST["dia2"]}"; $ordenar = $_POST['ordenar']; //$order = "Order By '".$ordenar."' ASC"; if (isset ($_POST['submit'])) { if ($_POST['ordenar'] == ""){ die('<p align=center style=position:static;top:80px;height:40px;wight:270px;font-family:Courier New;font-size:15px;color:#000080">You must select at least one order by item below.</p>'); } echo "Searching from\n"; echo $datainitial; echo "\nto\n"; echo $datafinal; //Aqui começa o exemplo do código de paginação $criterio = ""; if ($_GET["criterio]!=""){ $txt_criterio = $_GET["criterio"]; $criterio = "WHERE CONVERT(VARCHAR(50),subscription_activation_timestamp,111) BETWEEN CONVERT(VARCHAR(50),'$datainitial',111) AND CONVERT(VARCHAR(50),'$datafinal',111) order by '$ordenar' asc"; } //Número máximo de links a serem exibidos $numero_links = "11"; //Número de registros por página $total_reg = "20"; if(!$pagina) { $pc = "1"; } else { $pc = $pagina; } // intevalo revebe o valor da variavel numero_links $intervalo = $numero_links; // inicio recebe pc - 1 para montamos o sql //$inicio = $pc-1; $inicio = $pc*$total_reg; //Aqui eu mostro o total de registros encontrados $sql = mssql_query("SELECT * FROM portabilidade ".$criterio); $tr = mssql_num_rows($sql); //Aqui vai o código que substitui o famoso LIMIT do MySql. Adaptado para SQL Server. $sql2=mssql_query(" select * from ( select top $total_reg * from ( select top $inicio * from portabilidade ".$criterio." ) as newtbl order by '$ordenar' desc ) as newtbl2 order by '$ordenar' asc"); // recebemos o valor do total de paginas $tp = ceil($tr/$total_reg); if ($tr === 0){ die('<p align=center style=position:static;top:80px;height:40px;wight:270px;font-family:Courier New;font-size:15px;color:#000080">No Record was found on Database.</p>'); }else { // listamos os dados de acordo com os parametros da sql2 echo "<font size='1' face='Verdana'>"; echo "Página $pc de $tp<br> Total de registros encontrados: $tr<br>"; ?> <table width="75%" border="0" align=center> <tr> <th scope="col" abbr="Number">Number</th> <th scope="col" abbr="Provider">Provider</th> <th scope="col" abbr="EOT">EOT</th> <th scope="col" abbr="SPID">SPID</th> <th scope="col" abbr="CNL">CNL</th> <th scope="col" abbr="LNP">Number Type</th> <th scope="col" abbr="lnp">Type</th> <th scope="col" abbr="Status">Status</th> <th scope="col" abbr="Reason">Reason</th> </tr> <?php while($l = mssql_fetch_array($sql2)) { $id = $l["portabilidadeID]; $tn = $l["subscription_tn"]; $rn = $l["subscription_rn1"]; //$data = implode("-", array_reverse(explode("-", $l["data_nascimento"]))); $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> <td> $tn</td> <td> $rn</td> <td> $eot</td> <td> $spid</td> <td> $cnl</td> <td> $lnp</td> <td> $line</td> <td> $status</td> <td> $reason</td> </tr>\n" ;} echo "<hr>"; // A variavel aux recebe o valor do total de paginas/intervalo $aux = $tp/$intervalo; $aux1 = $pc/$intervalo; $pi = $aux1 * $intervalo; if ($pi == "0") { $pi = "1"; } $pf = $pi + $intervalo -1; $anterior = $pi-$intervalo; if($pc<=$intervalo) { $anterior = 1; } $aux2 = $pi + 1; if($pi>1) { $aux = $pi - 1; $aux2 = $pi + 1; // Começa a listar a paginação echo "<a href=paginar.php?pagina=$aux&criterio=$txt_criterio'> << <b> Anterior </b></a>&nbsp;"; } else { echo "<font size='1' face='Verdana'>"; echo "<< Anterior &nbsp;&nbsp;&nbsp;"; echo "</font>"; } // Monta os links da parte central da paginação for ($pi;$pi<$pf;$pi++) { if($pi<=$tp) { if($pc==$pi) { echo "<strong><font size='1' face='Verdana'>"; echo "<b>[" . $pi . ]</b>&nbsp;"; echo "</font></strong>"; } else { echo "<a href='paginar.php?pagina=" . $pi . "&criterio=" . $txt_criterio . "'>" . $pi . "</a>&nbsp;"; } } } // faz verificação pra incluir ou não link na palavra próximo if($pc != $tp){ echo "<strong><font size='1' face='Verdana'>"; echo "<a href='paginar.php?pagina=$aux2&criterio=$txt_criterio'><b>&nbsp;&nbsp;&nbsp; Próximo</b> >></a>"; echo "</font></strong>"; } else { echo "<font size='1' face='Verdana'>"; echo "&nbsp;&nbsp;&nbsp; Próximo >>"; echo "</font>"; } } } ?>
  6. Cara obrigadão pela força. Se não for abusar eu tentei incluir um script de paginação nesse mesmo script acima, mas não rolou. Você teria uma dica para me dar em cima desse script? Mais uma vez grato pela atenção. Ricardo
  7. Pessoal boa tarde. Estou batendo cabeça a 3 dias para desvendar o porque não consigo através do formulário fazer uma pesquisa no banco e dar ao usuário a opção de como quer ordernar os dados. Logo abaixo segue o script para menciono onde está o erro. <?php require_once("members.php"); include("funcoes.php"); mssql_connect("localhost", "senha", "password") or die(mssql_error()); mssql_select_db("portabilidade") or die(mssql_error()); $datainitial = "{$_POST["ano1"]}-{$_POST["mes1"]}-{$_POST["dia1"]}"; $datafinal = "{$_POST["ano2"]}-{$_POST["mes2"]}-{$_POST["dia2"]}"; $_POST['ordenar[]']; //$order = "Order By '".$ordenar."' ASC"; if (isset ($_POST['submit'])) { echo "$ordenar\n"; echo "Searching from\n"; echo $datainitial; echo "\nto\n"; echo $datafinal; /*if (!$_POST['datainitial'] & !$_POST['datafinal']) { die('<p align=right style=position:absolute;left:auto;top:80px;height:40px;wight:270px;font-family:Courier New;font-size:15px;color:#000080">You must select RN or TN</p>'); } else{*/ //$re = mssql_query("SELECT * FROM portabilidade where convert(varchar(10) subscription_activation_timestamp,111) between convert(varchar(10)'$datainitial') and convert(varchar(10)'$datafinal') ORDER BY subscription_tn;")or die(mssql_error()); $re = 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"); $line = mssql_num_rows($re); A variável ordenar deveria dar opção ao usuário por quais dados quer ordenar if ($line === 0){ die('<p align=center style="position:static;top:80px;height:40px;wight:270px;font-family:Courier New;font-size:15px;color:#000080">No Record was found on Database.</p>'); }else { ?> <table width="75%" border="0" align=center> <tr> <th scope="col" abbr="Number">Number</th> <th scope="col" abbr="Provider">Provider</th> <th scope="col" abbr="EOT">EOT</th> <th scope="col" abbr="SPID">SPID</th> <th scope="col" abbr="CNL">CNL</th> <th scope="col" abbr="LNP">Number Type</th> <th scope="col" abbr="lnp">Type</th> <th scope="col" abbr="Status">Status</th> <th scope="col" abbr="Reason">Reason</th> </tr> <?php while($l = mssql_fetch_array($re)) { $id = $l["portabilidadeID]; $tn = $l["subscription_tn"]; $rn = $l["subscription_rn1"]; //$data = implode("-", array_reverse(explode("-", $l["data_nascimento"]))); $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> <td> $tn</td> <td> $rn</td> <td> $eot</td> <td> $spid</td> <td> $cnl</td> <td> $lnp</td> <td> $line</td> <td> $status</td> <td> $reason</td> </tr>\n" ;} } //} } else { ?> <form action=<?php echo $_SERVER['PHP_SELF]?>" method="post" align=left> <h1 align=center style="position:static;font-family:Courier New;color:#000080;font-size:12px;z-index:2" size="16">Searching on Portability Database</h1> <table width="250" border="0" align="center" cellspancing="0"> <tr> <tr><td scope="col" abbr="IDate">Initial Date:</td><tr> <tr><td scope="col" abbr="INIDate"> <?php //$datainitial = explode('-',$datainitial); $datainitial = explode ('-', $datainitial); echo monta_select("ano1", 2000, 2020); echo monta_select("mes1", 1, 12); echo monta_select("dia1", 1, 31); $datainitial = "{$_POST["ano1"]}-{$_POST["mes1"]}-{$_POST["dia1"]}"; ?> </td></tr> <tr><td>End Date:</td></tr> <tr><td> <?php $datafinal = explode('-',$datafinal); echo monta_select("ano2", 2000, 2020); echo monta_select("mes2", 1, 12); echo monta_select("dia2", 1, 31); $datafinal = "{$_POST["ano2"]}-{$_POST["mes2"]}-{$_POST["dia2"]}"; ?> </td></tr> </tr> <tr> <tr><td>Order By:</td></tr> Aqui está o option select, já tentei várias formas menos a correta, que não sei. <tr><td> <select name=ordenar[]" "> <option selected value="">Order by</option> <option select value="ordenar['subscription_tn]">Number</option> <option select value="ordenar['subscription_rn1']">Provider</option> <option select value=ordenar['subscription_recipient_eot]">EOT</option> <option select value="ordenar['subscription_lnp_type']">LNP</option> <option select value=ordenar['subscription_line_type]">Line</option> </select> </td></tr> </tr> <tr> <tr><td> <input align=center type="submit" name="submit" value="Search" class="decoder" style="border:0;color:#000080;width:76px;height:22px;border:0"> </td></tr> </tr> </form> <?php } ?> </body> </html> Abraços Ricardo
×
×
  • Criar Novo...