free4k 0 Denunciar post Postado Maio 15, 2015 Olá pessoal. Tenho uma tabela com registros de downloads efeituados, sendo que cada download faz um registro com a ID da postagem que contém o arquivo baixado. Preciso saber quantos downloads foram efeituados em cada ID. Alguém pode me ajudar? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
sousatg 9 Denunciar post Postado Maio 15, 2015 Se você quer saber quantos downloads foram feitos do post com id 8, por exemplo, seria algo assim: SELECT COUNT(id_post) FROM tabela WHERE id_post = 8; Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 16, 2015 Se você quer saber quantos downloads foram feitos do post com id 8, por exemplo, seria algo assim: SELECT COUNT(id_post) FROM tabela WHERE id_post = 8; Entendi. Fiz o código abaixo utilizando seu exemplo, porém acho que fiz algo errado, pois não mostrou os valores corretos, mostrou os valores: 4, 0, 2, 0, 5, 0. <?php require("conn.php"); $conn = new Conexao(); $sql = mysql_query("SELECT id_post, count FROM downloads WHERE yearweek(data) = yearweek(curdate())"); while($ln = mysql_fetch_array($sql)){ $id_post[] = $ln['id_post']; $array = array_unique($id_post); } for($i = 0; $i < count($array); $i++){ $sql2 = mysql_query("SELECT COUNT(id) as teste FROM downloads WHERE id_post = '$array[$i]'"); if($ln2 = mysql_fetch_array($sql2)) { echo $ln2['teste']."<br/>"; } } Compartilhar este post Link para o post Compartilhar em outros sites
Mateus Silva 64 Denunciar post Postado Maio 16, 2015 <?php require("conn.php"); $conn = new Conexao(); $sql = mysql_query("SELECT id, id_post, count FROM downloads WHERE yearweek(data) = yearweek(curdate())"); while($ln = mysql_fetch_array($sql)){ $total = mysql_num_rows(mysql_query("SELECT id FROM downloads WHERE id_post = '$ln[id]'")); echo "Temos {$total} downloads no post {$ln[id_post]}"; } Compartilhar este post Link para o post Compartilhar em outros sites
Electronic 124 Denunciar post Postado Maio 17, 2015 Use count SELECT id_post, count( id_post )FROM downloadsGROUP BY id_post Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 17, 2015 Mateus Silva, não sei o porquê, mas o código retornou em branco. Electronic, dessa forma? ▼ <?php require("conn.php"); $conn = new Conexao(); $sql = mysql_query("SELECT id_post, count( id_post ) FROM downloads GROUP BY id_post"); while($ln = mysql_fetch_array($sql)){ echo $ln['id_post']; } Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Mateus Silva 64 Denunciar post Postado Maio 17, 2015 debugue o código, veja o que vem em $ln['id_post']; porque o que mandei la em cima era pra funcionar Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Maio 17, 2015 1. Pra que esta linha? $conn = new Conexao(); O que faz essa classe Conexao? Você a instancia em $conn mas nunca usa essa variável... 2. Seu código está obsoleto. Não use mysql_connect etc. Funções mysql_* estão obsoletas desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql A ideia geral, usando MySQLi, é: $my = new mysqli( 'servidor', 'usuario', 'senha', 'banco' ); $sql = "SELECT COUNT(*) AS total FROM tabela"; $exec = $my->query( $sql ); $f = $exec->fetch_assoc(); echo $f['total']; edite $sql, para corresponder à consulta que você deseja Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 18, 2015 Essa Conexão() está dentro de conn.php, que tem os dados de conexão. Se eu soubesse antes, agora não posso mudar para MySQLi ou PDO, pois já fiz praticamente todo o site utilizando mysql_. Vou fazer mais alguns testes para tentar descobrir porque o código do Mateus Silva não funcionou, em seguida retorno. Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 19, 2015 Consegui, porém está exibindo os resultados repetidos, pois cada id ele escreve na tela, tem como escreve somente uma vez por id? Compartilhar este post Link para o post Compartilhar em outros sites
free4k 0 Denunciar post Postado Maio 19, 2015 Handoncloudsys, preciso que cada download seja um registro, pois assim posso usar yearweek(data) = yearweek(curdate()) para obter os downloads semanais. Tentei transformar em array e usar array_unique(), porém não funcionou. Agora consegui. Está aqui o código: <?php require("conn.php"); new Conexao(); $sql = mysql_query("SELECT * FROM downloads WHERE yearweek(data) = yearweek(curdate())"); while($ln = mysql_fetch_array($sql)){ $total = mysql_num_rows(mysql_query("SELECT id FROM downloads WHERE id_post = '" . $ln['id_post']. "' and yearweek(data) = yearweek(curdate())")); $array[$ln['id_post']] = $total; } echo "<pre>"; print_r($array); echo "</pre>"; Compartilhar este post Link para o post Compartilhar em outros sites