Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nelsinhooo

Paginação - Erro

Recommended Posts

olá.

eu sou iniciante em php e estou com uns problemas.

to aqui fazendo uns testes e tal, e começei a montar a paginação, seguindo uma video aula.

ai deu um erro aqui

 

Parse error: parse error, expecting `T_VARIABLE' or `'$'' in C:\wamp\www\cursophp\aula\cadastro.php on line 30

 

linha 30 - for($i = $pag-$links; $i <= $pag-1; $++){

 

eu dei uma enxugada no codigo tirando o html, pra ficar mais visivel o codigo

 

<?
include "conn.php";
?>

<?php
$pag = $_GET['pag'];
	if(isset($pag)){
		$pag = $pag;
	}else{
		$pag = 1;
	}
$quantidade = 5;
$inicio = ($pag * $quantidade) - $quantidade;

	$sql = mysql_query("SELECT * FROM jogadores ORDER BY numero LIMIT $inicio, $quantidade");
	   while($linha = mysql_fetch_array($sql)){
	   		$nome = $linha['nome'];

			echo "$nome";
		}
	
$sql2 = mysql_query("SELECT * FROM jogadores");
$total_registros = mysql_num_rows($sql2);

$paginas = ceil($total_registros/$quantidade);
$links = 2;
	
	echo "<a href='cadastro.php?pag=1'>primeira pagina</a>";
	
for($i = $pag-$links; $i <= $pag-1; $++){
	if($i <=0){
	}else{
		echo "<a href='cadastro.php?pag=".$i."'>".$i."</a>";
		}
	}
	echo "<a href=#>$pag</a>";
	
for($i = $pag+1; $i <= $pag+$links; $i++){
	if($i>$paginas){
	}else{
		echo "<a href='cadastro.php?pag=".$i."'>".$i."</a>";
		}
	}
		echo "<a href=cadastro.php?pag=".$paginas.">primeira pagina</a>";
?>

desde ja agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw beraldo, esse erro sumiu

agora deu outro erro

 

Notice: Undefined index: pag in C:\wamp\www\cursophp\aula\cadastro.php on line 6

 

linha 6 - $pag = $_GET['pag'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso não é um erro. É um aviso. são diferentes

 

isso ocorre pois 'pag' não existe em $_GET.

 

Use isset() para verificar se $_GET['pag'] existe

 

beraldo, só uma duvida.

eu tava com um problema assim a um tempo atras. tinha esquecido que era aviso.

mais eu testei em outro pc e funcionou, nao precisou por o isset

pq isso? em uns da e em outros nao

e mto obrigado pela ajuda cara

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

há duas diretrizes de configuração do PHP (no php.ini) que influenciam nisso: display_errors e error_reporting.

 

com display_errors em off, NENHUM erro ou aviso é exibido. Com ele em on, a exibição de erros depende da configuração de error_reporting. Se você desabilitar a exibição de E_NOTICE's, os avisos do tipo Notice, como o que você citou acima, não são exibidos.

 

 

Mais detalhes:

http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors

http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

 

 

ambas as configurações podem ser modificadas em tempo de execução, como ini_set()

 

 

Por isso a exibição de erros pode ser diferente entre um servidor ou outro

coisa besta do PHP. Erro é erro e não pode ser omitido :P

O recurso é bom quando bem usado - por exemplo omitir erros gerados por uma exceção -, mas ele é mal utilizado por programadores "sobrinhos"

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou também mal utilizados por Administradores de redes 'sobrinhos', pois tenho um sistema hospedado no Terra e lá eles omitem os erros através do proprio php.ini, ou seja, não tem como alterar, então é praticamente enviável inserir ini_set('error_reporting', E_ALL); e o display_erros em todas as páginas, há não ser para debugar alguma código em expecifico.

 

Então, atente-se há isso ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou também mal utilizados por Administradores de redes 'sobrinhos', pois tenho um sistema hospedado no Terra e lá eles omitem os erros através do proprio php.ini, ou seja, não tem como alterar, então é praticamente enviável inserir ini_set('error_reporting', E_ALL); e o display_erros em todas as páginas, há não ser para debugar alguma código em expecifico.

 

Então, atente-se há isso ^_^

 

Nesse caso a escolha é válida. Servidores de produção não deveme xibir os erros. Erros mostram paths e informações importantes do servidor. O programador deve manipular os erros, seja fazendo logs de erros em arquivos ou ignorando os erros (sim, é uma possibilidade. besta, mas é :P )

 

Não precisa colocar ini_set() em todas as páginas. O ideal é ter um arquivo de inicialização, que define configurações básicas para o sistema. Esse arquivo é sempre carregado em todas as páginas do sistema. Aí você pode colocar o ini_set(), bastando editar em só um local, modificando o sistema como um todo

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com relação a esse erro, NOTICE não é mt 'importante', é apenas um aviso.

Com ctz o ideal não é aparecer nada, você declarou a variavel errada. coloque um @ antes p/ corrigir ^_^

 

Dica:

O certo é você manipular os erros. Não deixar eles se exibidos no .html, .php e sim em um arquivo .txt e depois enviar p/ seu e-mail p/ você ser noticado sobre estes erros. ( ISSO QND O SISTEMA ESTA EM PRODUCAO )

Agora para você criar 'localmente', deixe o display_erros ON e o error_reporting = E_ALL

 

Beraldo, em relação ao arquivo de inicialização eu tenho, mas eu carrego apenas em algumas páginas :P

 

:joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa andre, mto obrigado mesmo, resolveu.

E obrigado a todos pela atenção.

Mais só uma ultima coisa, eu nunca tinha visto isso, sou iniciante, rss

Pq colocar esse arroba antes da variavel?

Parabens ao forum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre o arroba:

http://php.net/manual/pt_BR/language.operators.errorcontrol.php

 

 

Esse operador não deve ser usado em situações simples como a sua. Ele serve para omitir erros que são exceção, como conexão com BD, conexão com servidores remotos etc.

 

No seu caso, basta user isset() para saber se a variável existe.

 

Use o arroba com moderação. :thumbsup:

 

Para mais detalhes, veja a seção 8 deste texto:

http://www.rberaldo.com.br/blog/2009/05/05/boas-praticas-ao-programar-2/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.