Paging losing data

-4

I'm developing a page that has pagination. However, when I click on a pagination number on the page I get the error:

  

Notice: Undefined index: query_type in C: \ xampp \ htdocs \ control_regs \ tipoconsulta.php on line 37

Code:

<html>
<head>
<title>Tipo de consulta</title>
</head>

<body>

<table border="1">

<tr>
<td>Descrição:</td> 
<td>Forma de pagamento:</td>
<td>Valor da parcela: </td>
<td>Quantidade de parcelas:</td>
<td>Numero da parcela:</td>
<td>Pago:</td>
<td>Cartão:</td>
<td>Numero do cart&atildeo:</td>
<td>Data de vencimento:</td>
</tr>


<?php

include "conecta_banco.php";

$idusu = $_SESSION["id"];
$consulta = $_POST["tipo_consulta"];

switch($consulta){

    case "exibe_tudo": 

        $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;

        //seleciona todos os itens da tabela
        $sent_sql = "SELECT * FROM gastos WHERE usu_id = '$idusu'";
        $result = mysql_query($sent_sql);

        //conta o total de itens
        $total = mysql_num_rows($result);

        //seta a quantidade de itens por página, neste caso, 20 itens
        $registros = 20;

        //calcula o número de páginas arredondando o resultado para cima
        $numPaginas = ceil($total/$registros);

        //variavel para calcular o início da visualização com base na página atual
        $inicio = ($registros*$pagina)-$registros;

        //seleciona os itens por página
        $sent_sql = "SELECT * FROM gastos LIMIT $inicio,$registros";
        $result = mysql_query($sent_sql);
        $total = mysql_num_rows($result);



        while($tbl = mysql_fetch_array($result))
        {            
            $descricao = $tbl["descricao_gasto"];
            $formapagamento = $tbl["moeda"];
            $valor = $tbl["valor_gasto"];
            $quantidade = $tbl["quant_parcela"];
            $numerodaparcela = $tbl["num_parcela"];
            $tapago = $tbl["pago"];
            $cartao = $tbl["cartao"];
            $numcartao= $tbl["num_cartao"];
            $datavencimento = $tbl["data_venc"];                                             




            /* Aqui converto a data que vem do mysql no formato y/m/d
             * para d/m/y */

            $datavencimentoconv = date("d/m/Y",strtotime($datavencimento));  



            echo "<tr>";
            echo "<td>$descricao </td>";
            echo "<td>$formapagamento </td>";
            echo "<td>R$ $valor </td>";
            echo "<td>$quantidade </td>";
            echo "<td>$numerodaparcela</td>";
            echo "<td>$tapago</td>";
            echo "<td>$cartao </td>";
            echo "<td>$numcartao </td>";
            echo "<td>$datavencimentoconv </td>";
            echo "</tr>";

                    }          



        $sent_sql2 = "SELECT sum(valor_gasto) FROM gastos WHERE usu_id='$idusu'";
        $result2 = mysql_query($sent_sql2);

        while($sum = mysql_fetch_array($result2)){
            $soma = $sum['sum(valor_gasto)'];

            echo "<tr>";
            echo "<td>Total: </td>";
            echo "<td>R$ $soma</td>";
            echo "</tr>";


        }

        //exibe a paginação
        for($i = 1; $i < $numPaginas + 1; $i++) {
            echo "<a href='tipoconsulta.php?pagina=$i'>".$i."</a> ";

        }



       break;
}


?>

</table>

</body>

</html>

Remembering that the variable $consulta takes the radius tipo_consulta from another page.

    
asked by anonymous 02.10.2018 / 20:17

1 answer

-1

Speak my dear, next. The error that occurs is that when the query page loads, you pass the query_type via POST (sent by a form), so when paging this query type POST no longer exists which causes the error. And how do you use the value of it to demonstrate the results, or will you have to pass the value via GET (URL, like time with page number) or set it to a $ _ SESSION < strong>. Do not forget to check if $ _ POST exists or not. An example:

<html>
<head>
<title>Tipo de consulta</title>
</head>

<body>

<table border="1">

<tr>
<td>Descrição:</td> 
<td>Forma de pagamento:</td>
<td>Valor da parcela: </td>
<td>Quantidade de parcelas:</td>
<td>Numero da parcela:</td>
<td>Pago:</td>
<td>Cartão:</td>
<td>Numero do cart&atildeo:</td>
<td>Data de vencimento:</td>
</tr>


<?php

include "conecta_banco.php";

$idusu = $_SESSION["id"];
if( isset( $_POST["tipo_consulta"] ) ){
    $consulta = $_POST["tipo_consulta"];    
}elseif( isset( $_GET["tipo_consulta"] ) ){
    $consulta = $_GET["tipo_consulta"];
}


switch($consulta){

    case "exibe_tudo": 

        $pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;

        //seleciona todos os itens da tabela
        $sent_sql = "SELECT * FROM gastos WHERE usu_id = '$idusu'";
        $result = mysql_query($sent_sql);

        //conta o total de itens
        $total = mysql_num_rows($result);

        //seta a quantidade de itens por página, neste caso, 20 itens
        $registros = 20;

        //calcula o número de páginas arredondando o resultado para cima
        $numPaginas = ceil($total/$registros);

        //variavel para calcular o início da visualização com base na página atual
        $inicio = ($registros*$pagina)-$registros;

        //seleciona os itens por página
        $sent_sql = "SELECT * FROM gastos LIMIT $inicio,$registros";
        $result = mysql_query($sent_sql);
        $total = mysql_num_rows($result);



        while($tbl = mysql_fetch_array($result))
        {            
            $descricao = $tbl["descricao_gasto"];
            $formapagamento = $tbl["moeda"];
            $valor = $tbl["valor_gasto"];
            $quantidade = $tbl["quant_parcela"];
            $numerodaparcela = $tbl["num_parcela"];
            $tapago = $tbl["pago"];
            $cartao = $tbl["cartao"];
            $numcartao= $tbl["num_cartao"];
            $datavencimento = $tbl["data_venc"];                                             




            /* Aqui converto a data que vem do mysql no formato y/m/d
             * para d/m/y */

            $datavencimentoconv = date("d/m/Y",strtotime($datavencimento));  



            echo "<tr>";
            echo "<td>$descricao </td>";
            echo "<td>$formapagamento </td>";
            echo "<td>R$ $valor </td>";
            echo "<td>$quantidade </td>";
            echo "<td>$numerodaparcela</td>";
            echo "<td>$tapago</td>";
            echo "<td>$cartao </td>";
            echo "<td>$numcartao </td>";
            echo "<td>$datavencimentoconv </td>";
            echo "</tr>";

                    }          



        $sent_sql2 = "SELECT sum(valor_gasto) FROM gastos WHERE usu_id='$idusu'";
        $result2 = mysql_query($sent_sql2);

        while($sum = mysql_fetch_array($result2)){
            $soma = $sum['sum(valor_gasto)'];

            echo "<tr>";
            echo "<td>Total: </td>";
            echo "<td>R$ $soma</td>";
            echo "</tr>";


        }

        //exibe a paginação
        for($i = 1; $i < $numPaginas + 1; $i++) {
            echo "<a href='tipoconsulta.php?pagina=$i&tipo_consulta=$consulta'>".$i."</a> ";

        }



       break;
}


?>

</table>

</body>

</html>

If it does not work, please comment.

    
02.10.2018 / 21:32