Ir para conteúdo

POWERED BY:

Arquivado

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

VinnYSPL

Como Contar Dois Campos De Duas Tabelas Diferentes Como Um Só

Recommended Posts

Ola amigos estou aqui pedindo ajuda pois estou com uma duvida.

Tipo eu tenho uma galeria de imagens e quero por o total de fotos.

Ela tem os bancos assim

Galeria

id_galeria , nome_galeria, data_galeria, situacao_galeria

Foto

Id_foto, nome_foto, id_galeria_foto

O que eu quero fazer? Exemplo e pegar a id_galeria=1 mais o total de fotos que tem id_galeria_foto =1 isso em um select mais eu não consigo se alguém pode me ajudar eu fico muito grato. Pois não consigo de jeito nenhum fazer esse select :(

E isso ai quem poder ajudar ficarei muito grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos ver..

Galeria

id_galeria , nome_galeria, data_galeria, situacao_galeria

Foto

Id_foto, nome_foto, id_galeria_foto

SELECT *, COUNT(Id_foto) AS n_fotos 
FROM `Galeria` INNER JOIN `Foto` 
ON `Galeria`.`id_galeria` = `Foto`.`id_galeria_foto` 
WHERE `Galeria`.`id_galeria` = 1 

A idéia, é que te retorne um n_fotos, que seja o número de fotos, nessa galeria com id = 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola muito obrigada mais eu ainda tenho umas duvidas.

Eu não consigo chamar o n_fotos no php tentei usar o

$qtd = $resultset['n_fotos'];

$quant = mysql_resultset["n_fotos"];

 

Mas não apareceu nada. A verdade e que não consigo exibir isso.

Muito obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos lá...

$sql = "SELECT *, COUNT(Id_foto) AS n_fotos 
FROM `Galeria` INNER JOIN `Foto` 
ON `Galeria`.`id_galeria` = `Foto`.`id_galeria_foto` 
WHERE `Galeria`.`id_galeria` = 1 ";
$q = mysql_query( $sql ); //você precisa enviar a consulta pro banco

$dados = mysql_fetch_assoc( $q );//você guarda o retorno num array associativo
  echo $dados['n_fotos'];
exemplo simples com as mínimas funções necessárias, pensando que você ja fez a conexão com o banco.

Qualquer coisa, poste o teu código completo, para vermos como você está fazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<table width="550" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
  <tr>
    <td width="121">   Nome da Galeria </td>
    <td width="119">  Data</td>
    <td width="121">  Situacao</td>
    <td width="121"> </td>
  </tr>
<?PHP
// Conexão com o banco de dados

$conn = @mysql_connect("localhost", "root", "") or die ("Problemas na conexão.");
$db = @mysql_select_db("galeria", $conn) or die ("Problemas na conexão");

//Quantidade de Fotos

$qnt = "SELECT *, COUNT(id_imagem) AS n_fotos FROM `galeria` INNER JOIN `foto` ON `galeria`.`id` = `foto`.`id_galeria` WHERE `galeria`.`id` = $ft[id_galeria] ";
$q = mysql_query( $qnt ); //você precisa enviar a consulta pro banco
$dados = mysql_fetch_assoc( $q ); //você guarda o retorno num array associativo

//Seleçao da foto

$sql1 = mysql_query("SELECT * FROM foto WHERE id_galeria = $Ga[id] ORDER BY id_imagem DESC");
$ft = mysql_fetch_array($sql1);

//Lista de Galerias
$sql = mysql_query("SELECT * FROM galeria ORDER BY id DESC");
while ($Ga = @mysql_fetch_array($sql)) 
	{ //Abre While

?>
  <tr>
  <form id="form1" name="form1" method="post" action="viz_gale.php">
    <td><?PHP echo $Ga[nome]; ?></td>
    <td><?PHP echo $Ga[data]; ?></td>
    <td>
	<?PHP 
echo $dados['n_fotos']; ?>
	<img src="thumb.php?img=figuras/<?php echo $ft[imagem]; ?>" alt=""/></td>
    <td><label>
      <div align="center">
        <input type="hidden" name="id" value="<?PHP echo $Ga[id]; ?>" />
		<input type="hidden" name="nome" value="<?PHP echo $Ga[nome]; ?>" />
		<a href="#" onclick="document.form1.submit()">
        Vizualizar as Fotos
		</a>
        </div>
    </label></td>
    </form>
  </tr>
<?PHP } //Fecha While ?>  
</table>

Ai esta meu código.

Esta dando erro

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in D:\Sites\SitesPhP\Sites Teste\Galeria\index.php on line 24

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\Sites\SitesPhP\Sites Teste\Galeria\index.php on line 29

Se puder dar uma olhadinha eu fico feliz

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos procurar o erro.

Use aspas para delimitar as chaves de arrays.

$qnt = "SELECT *, COUNT(id_imagem) AS n_fotos FROM `galeria` INNER JOIN `foto` ON `galeria`.`id` = `foto`.`id_galeria` WHERE `galeria`.`id` = {$ft['id_galeria']} ";
$q = mysql_query( $qnt )or die( mysql_error() ); //você precisa enviar a consulta pro banco
$dados = mysql_fetch_assoc( $q ); //você guarda o retorno num array associativo

//Seleçao da foto

$sql1 = mysql_query("SELECT * FROM foto WHERE id_galeria = $Ga['id'] ORDER BY id_imagem DESC")or die( mysql_error() );
$ft = mysql_fetch_array($sql1);
da onde vem esse array: $Ga ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então vamos la vou explicar.

O que acontece no código eu exibo a galeria com uma imagem da galeria e com a quantidade de fotos em cada galeria. Isso em uma While na qual tem esse código

 

$sql = mysql_query("SELECT * FROM galeria ORDER BY id DESC");
while ($Ga = @mysql_fetch_array($sql))

Essa array $Ga ele fica responsável pelo id da galeria certo então o que me aconte eu quero que mostre a lista de galerias cadastradas com as nome da galeria que fica na array $Ga[nome_galeria] a foto da galeria que fica $ft[nome_foto] e a quantidade de fotos cadastrada na galeria que fica echo $dados['n_fotos']; mas nao queria o id fixo a 1 a tentei colocar a no lugar do 1 $ft[id_galeria_foto] pra que na hora da while ele pegar a ida while certa deu pra entender ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte. Troque isto

$q = mysql_query( $qnt );

Por isto

$q = mysql_query( $qnt ) or die('Erro na $qnt - Consulta enviada '.$qnt.'<br/> Erro do Mysql - '.mysql_error());

Isto

 

$sql1 = mysql_query("SELECT * FROM foto WHERE id_galeria = $Ga[id] ORDER BY id_imagem DESC");

Por isto

 

$consulta = "SELECT * FROM foto WHERE id_galeria = $Ga[id] ORDER BY id_imagem DESC";
$sql1 = mysql_query($consulta) or die('Erro na $consulta - Consulta enviada '.$consulta.'<br/> Erro do Mysql - '.mysql_error());

Troque isto

$sql = mysql_query("SELECT * FROM galeria ORDER BY id DESC");

Por isto

 

$consulta2 = "SELECT * FROM galeria ORDER BY id DESC";
$sql = mysql_query($consulta2) or die('Erro na $consulta2 - Consulta enviada '.$consulta2.'<br/> Erro do Mysql - '.mysql_error());

Veja o que aparece. Outra coisa. A na consulta $sql1 você usa a $ga, mas ela só e setada mais abaixo no código. O valor dela tem que ser definido antes de usar.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa muito obrigado Carlos Eduardo e William Bruno deu certinho.

vlw mesmo.

tipo agora eu tenho uma outra duvida

na minha pagina aonde eu vizualizo as fotos tem um while mas so fica 1 foto abaixo da outra eu queria deixar em uma lista de 3 uma do lado da outra e abaixo mais 3 e dai por diante. alguem poderia me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

matias valeu mas essa nao me serviu .

pois ali a manual eu quero uma dinamica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende de como é o HTML que você quer gerar..

você pode fazer com listas, flutuando os LI.. q eles vão quebrar automaticamente..

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois ali a manual eu quero uma dinamica.

O HTML e o CSS é o mesmo, tanto estático como dinâmico. É só colocar o <li> no laço, que vai quebrar sozinho.

 

Carlos Eduardo

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.