Kurt_z 0 Denunciar post Postado Janeiro 11, 2008 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
visitante_php 0 Denunciar post Postado Janeiro 11, 2008 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
Kurt_z 0 Denunciar post Postado Janeiro 11, 2008 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
visitante_php 0 Denunciar post Postado Janeiro 11, 2008 ter at tem....mas seria um pouco enrolado, nao seria dificil, e tem como sim...foi so uma ideia, usar um identificador da pagina... Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 11, 2008 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
Kurt_z 0 Denunciar post Postado Janeiro 11, 2008 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
Beraldo 864 Denunciar post Postado Janeiro 11, 2008 Havia dois tópicos iguais, que foram mesclados neste único. O post duplicado foi removido. Compartilhar este post Link para o post Compartilhar em outros sites
Kurt_z 0 Denunciar post Postado Janeiro 12, 2008 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
Beraldo 864 Denunciar post Postado Janeiro 12, 2008 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. Compartilhar este post Link para o post Compartilhar em outros sites
Kurt_z 0 Denunciar post Postado Janeiro 12, 2008 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
visitante_php 0 Denunciar post Postado Janeiro 12, 2008 ja experimentou concatenar a vaiavel na sql? Compartilhar este post Link para o post Compartilhar em outros sites
Kurt_z 0 Denunciar post Postado Janeiro 12, 2008 ja experimentou concatenar a vaiavel na sql? tentei, nd feito! Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 12, 2008 pq pelo err, esta dizendo q a coluna pagina eh desconhecida...verifica a estrutura do db... Compartilhar este post Link para o post Compartilhar em outros sites
Kurt_z 0 Denunciar post Postado Janeiro 12, 2008 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
visitante_php 0 Denunciar post Postado Janeiro 12, 2008 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
Kurt_z 0 Denunciar post Postado Janeiro 12, 2008 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
visitante_php 0 Denunciar post Postado Janeiro 12, 2008 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
Kurt_z 0 Denunciar post Postado Janeiro 12, 2008 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