Ir para conteúdo

POWERED BY:

Arquivado

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

Kurt_z

EStou querendo que para cada página crie um id difenrente no bd!

Recommended Posts

Olá,

bom eu tenho site tipo www.sitequalquer.com/ , dentro deste site tenho o diretorio " www.sitequalquer.com/letras/ "

nesse diretorio eu tenho página "www.sitequalquer.com/letras/letra1.php". Até ai entendido né?

 

 

Nesta página eu quero que tenha o número de vezes q ela foi acessada. Então veja o meu bando de dados e depois a página;

 

tabela:

CODE
CREATE TABLE visitas(

id smallint(6) NOT NULL,

visitas text NOT NULL,

PRIMARY KEY (id))

 

 

letras1.php:

CODE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Conta</title>

</head>

 

<body>

<?

$host = "localhost"; //Endereço do host (padrão localhost)

$user = "root"; //Usuário do banco de dados MySQL

$pass = ""; //Senha do MySQL

$banco = "teste"; //Banco de dados do script

 

$conexao = mysql_connect("$host", "$user", "$pass")

or die ("Configuração de Banco de Dados Errada!");

 

$db = mysql_select_db("$banco")

or die ("Banco de Dados Inexistente!");

 

$seleciona = mysql_query("SELECT id, visitas FROM visitas");

while($reg = mysql_fetch_array($seleciona)){

$id = $reg['id'];

$visitas = $reg['visitas'];

}

$soma = $visitas + 1;

@mysql_query ("UPDATE visitas SET visitas= '$soma' WHERE id='$id'");

?>

<p>Esta letra foi vizualizada <? echo "$visitas"; ?></p></body>

</html>

 

Beleza até ai tudo bem ele adiciona um clique no bd, tudo certinho!!

Mas quando eu coloco em outra página "letra2.php" ele mostra o mesmo

numero de visita q tem no outro, e quando vou ver na tabela, ele não cria outro id.

 

Alguém poderia me dizer como fazer pra cada página ter um id no bd e só aumentar mais um

quando o clique for para ela?

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode criar uma tabela para cadastrar as paginas e outra para as visitas, ok, e na das visitas você coloca uma chave estrangeira para identificar a kual pagina pertence a visita tal, depois você faz a contagem com count pra saber o total de cada pagina...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode criar uma tabela para cadastrar as paginas e outra para as visitas, ok, e na das visitas você coloca uma chave estrangeira para identificar a kual pagina pertence a visita tal, depois você faz a contagem com count pra saber o total de cada pagina...

 

Mais não tem como fazer na mesma tabela???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de tudo, reestruture essa tabela. Use o ID somete para identificação, sem usá-lo nas consultas. Crie uma tabela com estes campos:

 

id int

pagina varchar

visitas int

 

Não faz sentido o campo visitas ser TEXT.

 

 

Com basename() você pega o nome do arquivo corrente. Com pathinfo() pode ser melhor, já que as páginas estão em diretórios diferentes.

 

 

E para fazer o update, faça assim:

Update tabela Set campo = campo + 1 Where arquivo = 'arquivo.php';

Nem precisa de Select. O valor já é incrementado na própria SQL! :D

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

ter at tem....mas seria um pouco enrolado, nao seria dificil, e tem como sim...foi so uma ideia, usar um identificador da pagina...

Tá certo!

 

mais é que pesquisei e nada encontrei! :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de tudo, reestruture essa tabela. Use o ID somete para identificação, sem usá-lo nas consultas. Crie uma tabela com estes campos:

 

id int

pagina varchar

visitas int

 

Não faz sentido o campo visitas ser TEXT.

 

 

Com basename() você pega o nome do arquivo corrente. Com pathinfo() pode ser melhor, já que as páginas estão em diretórios diferentes.

 

 

E para fazer o update, faça assim:

Update tabela Set campo = campo + 1 Where arquivo = 'arquivo.php';

Nem precisa de Select. O valor já é incrementado na própria SQL! :D

 

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

Eu fiz o que você disse, olha o erro que está dando:

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Arquivos de programas\xampp\htdocs\pgi1.php on line 22

 

Olha como a parte que esta dando esse erro:

CODE
...

$seleciona = mysql_query("SELECT pagina, visitas FROM visitas");

while($reg = mysql_fetch_array($seleciona)){

$pagina = pathinfo();

$visitas = $reg['visitas'];

}

$soma = $visitas + 1;

@mysql_query ("UPDATE visitas SET visitas= '$soma' WHERE pagina='$pagina'");

...

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

use mysql_error() para ver qual é o erro retornado pelo MySQL:

 

mysql_query(consulta) or exit(mysql_error());

e veja a documentação de pathinfo(), para entender o funcionamento dessa função.

Coloquei assim, como no manual:

CODE
$seleciona = mysql_query("SELECT pagina, visitas FROM visitas");

while($reg = mysql_fetch_array($seleciona)){

$pagina = pathinfo('http://localhost/pgi.php');

$pagina["basename"];

$visitas = $reg['visitas'];

}

Olha o que está dando:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Arquivos de programas\xampp\htdocs\pgi.php on line 31

Unknown column 'pagina' in 'where clause'

 

Tentei de toda forma , sempre dá isso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq pelo err, esta dizendo q a coluna pagina eh desconhecida...verifica a estrutura do db...

è cara o problema era um campo da tabela! vlw pelo toque!

 

Mais tem outro problema, agora ele não está adicionando no bd!

CODE
<?

$host = "localhost"; //Endereço do host (padrão localhost)

$user = "root"; //Usuário do banco de dados MySQL

$pass = ""; //Senha do MySQL

$banco = "teste"; //Banco de dados do script

 

$conexao = mysql_connect("$host", "$user", "$pass")

or die ("Configuração de Banco de Dados Errada!");

 

$db = mysql_select_db("$banco")

or die ("Banco de Dados Inexistente!");

 

$seleciona = mysql_query("SELECT pagina, visitas FROM visitass");

while($reg = mysql_fetch_array($seleciona)){

$pagina = pathinfo('http://localhost/pgi.php')

.$pagina["basename"];

$visitas = $reg['visitas'];

}

$soma = $visitas + 1;

@mysql_query ("UPDATE visitas SET visitas= '$soma' WHERE pagina='$pagina'");

 

?>

<p>Esta letra foi vizualizada <? echo "$visitas"; ?></p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

espero q você esteja fazendo como teste, pra depois colocar no ar....remova o @ para mostrar o erro e nas funcoes de mysql, coloca OR DIE(MYSQL_ERROR);, em minusculo, pra "debugar" saber onde esta acontecendo o erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

espero q você esteja fazendo como teste, pra depois colocar no ar....remova o @ para mostrar o erro e nas funcoes de mysql, coloca OR DIE(MYSQL_ERROR);, em minusculo, pra "debugar" saber onde esta acontecendo o erro...

Sim to testando aki no pc, antes de colocar no ar..

 

Agora deu certo não está retornando erro... Acho que errei quando criei a tabela,

o campo visitas ficou assim : "visitas INT " será que precisa colocar mais alguma coisa?

 

vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas apresentou algum erro? se você recriou a tabela , colocou visitas int, precisa colocar o tamanho, at quantos registros esta coloca tera de ter... se colocar 11, ela tera 00000000000 este numero de registros, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas apresentou algum erro? se você recriou a tabela , colocou visitas int, precisa colocar o tamanho, at quantos registros esta coloca tera de ter... se colocar 11, ela tera 00000000000 este numero de registros, ok?

Sim eu coloquei no campo visitas só INT, sem valor!!!

 

Será que eu tenho que colocar algo mais??

 

vlw!

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.