Ir para conteúdo

POWERED BY:

Arquivado

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

felixpereira

Pegar todos Id do banco

Recommended Posts

Boa tarde pessoal.

Mais uma vez estou por aqui, desta vez, uma coisa que parece ser tão simples, mas que estou quebrando a cabeça.

Esse código aqui de baixo exibir os cadastro que estão listado entre essas datas no banco. ate aqui tudo bem.

Ate coloquei um echo ali em baixo pra confirma se os dados estão chegando.

<?php 
$lista_data_sql = mysql_query("SELECT * FROM contas WHERE data >= '$DataConverterInicial' AND data <= '$DataConverterFinal'"); 
 while($lista_data = mysql_fetch_array($lista_data_sql)){
$id     = $lista_data['id'];
$data   = $lista_data['data'];
$valor  = $lista_data['valor'];
 echo "$data - $id - $valor <br /> ";
 }
?>

Agora aqui que to quebrando a cabeça. Esse código abaixo ele exibe o cadastro referente ao id do codigo ai de cima.

Aqui no meu banco fiz uma consulta. No código acima apareceu por exemplo registros 4 e 9. OK

Mas no código abaixo ele exibe os dados somente do cadastro 9, apenas o ultimo.

<?php 
$busca = mysql_query("SELECT * FROM cadastro WHERE cadId='$id' ORDER BY cadId ASC")or die(mysql_error());
while($ver = mysql_fetch_array($busca)){
$cadId = $ver["cadId"];
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está atribuindo o que vem do BD a uma variável, óbvio que a variável sempre conterá o último valor a ela atribuído.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eai ESerra.

Não teria como pega todos os cadastros que vem do código (contas)?

 

Porque o que estou querendo fazer é exibir uns dados do banco mas com restrições.

Do banco contas tem a "data" e do banco cadastro tem o "nome".

 

Onde faço um busca pela data, imprimo na tela com seu respectivo cadastro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer apenas exibir, use o echo direto então:

while($ver = mysql_fetch_array($busca)){
$cadId = $ver["cadId"];
echo  $cadId;
}

Caso você queira utilizar este id em alguma outra coisa, você pode montar um array dentro do laço, por exemplo:

$array_novo = array();
while($ver = mysql_fetch_array($busca)){
$array_novo[] = $ver["cadId"];
}

print_r($array_novo);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia ESerra.

Me retornou o seguinte. 1 conta do Id (4) e 2 conta com id (9).

Array ( [0] => 4 ) 
Array ( [0] => 4 [1] => 9 ) 
Array ( [0] => 4 [1] => 9 [2] => 9 ) 

Mas e agora? como eu exibo o cadastro do id 4 e 9?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em vez de perder tempo com toda essa gambiarra, faça um join de uma vez...

$lista_data_sql = mysql_query("SELECT c.* FROM contas c
LEFT JOIN cadastro cc ON cc.CAMPO_DA_TABELA_CADASTRO = c.CAMPO_DA_TABELA_CONTAS
WHERE data >= '$DataConverterInicial' AND data <= '$DataConverterFinal'");

Não sei qual o relacionamento das suas tabelas, logo você deverá altear o CAMPO_DA_TABELA_CADASTRO e CAMPO_DA_TABELA_CONTAS de acordo com o que for correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um apelido para a tabela:

...FROM contas c...

 

Senão eu teria que escrever e o nome completo dela:

... = contas.CAMPO_DA_TABELA_CONTAS ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz aqui, mas deu erro.

Acho que fiz confusão com esses "c" kk

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\EasyPHP\data\localweb\projects\cadastro_cliente\relatorio_a_receber_geral.php on line 28

$lista_data_sql = mysql_query("SELECT * FROM contas.postId LEFT JOIN cadastro.cadId ON cadastro.cadId = contas.postId WHERE data >= '$DataConverterInicial' AND data <= '$DataConverterFinal'");
 while($lista_data = mysql_fetch_array($lista_data_sql)){

Onde que ele faz a comparação do campo da tabela contas com o campo da tabela cadastro?

 

cadastro - cadId (esse é o ID do cadastro principal)

contas - postId (esse tem o mesmo ID do cadastro principal. É a ligação com o cadastro), data

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para isto existe o OR DIE(mysql_error()), ele vai te mostrar qual o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa dia.

ESerra add o OR DIE(mysql_error())

$lista_data_sql = mysql_query("SELECT * FROM contas LEFT JOIN cadastro ON cadastro.Id = contas.PostId WHERE data >= '$DataConverterInicial' AND data <= '$DataConverterFinal'") or die(mysql_error());
echo $lista_data_sql;

webdev15

resultado o echo

Resource id #5

Acho que não mencionei mais a restrição principal é a data.

Onde ele deve aparecer as contas entre as datas selecionadas.

Apareceu as contas puxo o cadastro de cada conta para imprimir no relatorio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não caiu no or die é porque não existe nenhum erro de sintaxe...

 

Movendo para MySQL.

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.