Ir para conteúdo

POWERED BY:

Arquivado

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

free4k

Quantidade de registros MySql

Recommended Posts

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?

 

yvUQ96fR.png

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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


<?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

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

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

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

Consegui, porém está exibindo os resultados repetidos, pois cada id ele escreve na tela, tem como escreve somente uma vez por id?

 

LJUW309s.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

×

Informação importante

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