Ir ao conteúdo

Posts recomendados

Postado

Estou com um erro, pesquisando sobre paginação com php vi alguns métodos mas todos que eu achei, estavam antigos ja, ai com a lógica que aprendi vendo os tutoriais conseguir montar e rodou certo só uma coisa que não estou conseguindo, a variável que mando via GET a "pg"se ele não existir, atribuir o valor de 1 mas não estou conseguindo.

 

Preciso que quando eu clicar em um link e direcionar para pagina se na URL não existir a variável ele a atribuir.

<?php 
require("conexao.php");
$limite = 6;
$consulta = mysqli_query($conexao,"SELECT * FROM table_produto");
$quantidade = mysqli_num_rows($consulta);
$qtd_paginas = ceil($quantidade/$limite);
$pg = $_GET['pg'];
$offset = ($pg*$limite) - $limite;

if(isset($pg)){$pg = $_GET['pg'];}else{$pg = 1;}
echo"<table>
<tr>
<th>Nome</th>
<th>Valor</th>
</tr>
";
$consulta2 = mysqli_query($conexao,"SELECT * FROM table_produto LIMIT $limite OFFSET $offset");
while($rtn = mysqli_fetch_object($consulta2)){
echo"
<tr>
<td>$rtn->nome</td>
<td>R$ $rtn->valor</td>
</tr>
";

//-----------------------------------------ATT-----------------------------------------\\

Nossa podia ter para excluir o tópico, ou melhor vou parar de postar  antes de conferir direito mesmo.

 

Pensei um pouco e resolvi.

 

if(isset($_GET['pg'])){$pg = $_GET['pg'];}else{$pg = 1;}
$offset = ($pg*$limite) - $limite;

 

Desculpe kkk :thumbsup:

  • Curtir 1
  • Moderador
Postado

@FabianoS Tem ainda um jeito de reduzir mais a linha de código dessa verificação!

Através do operador ternário do php:

 

$pg = (isset($_GET['pg'])) ? $pg = $_GET['pg'] : $pg = 1;
$offset = ($pg*$limite) - $limite;

Resumindo,  a variável $pg recebe o teste de isset($_GET['pg']), expressão a ser testada dentro do IF.

O valor que está depois do ponto de interrogação é referente caso entre no IF

O valor que está depois dos dois pontos ( : ) é referente caso entre no ELSE.

 

Com isso você faz sua verificação do isset dentro de uma condicional IF-ELSE em uma  única linha e deixando o código mais elegante de se entender!

 

Só para fins didáticos a sintaxe normal do if-else do seu código:

if(isset($_GET['pg'])){
   $pg = $_GET['pg'];
}else{
   $pg = 1;
}

 

  • Curtir 1
Postado
4 minutos atrás, dif disse:

@FabianoS Tem ainda um jeito de reduzir mais a linha de código dessa verificação!

Através do operador ternário do php:

 


$pg = (isset($_GET['pg'])) ? $pg = $_GET['pg'] : $pg = 1;
$offset = ($pg*$limite) - $limite;

Resumindo,  a variável $pg recebe o teste de isset($_GET['pg']). 

O primeiro ponto de interrogação é o IF, o dois pontos " : " é o else.

Com isso você faz sua verificação do isset dentro de uma condicional IF-ELSE em uma  única linha e deixando o código mais elegante de se entender!

 

Só para fins didáticos a sintaxe normal do if-else do seu código:


if(isset($_GET['pg'])){
   $pg = $_GET['pg'];
}else{
   $pg = 1;
}

 

 

Sim nos tópicos que eu vi eles usavam esse if , só fui entender depois, mesmo assim valeu.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...