Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola Pessoal
Preciso de Uma ajudinha de Voces
Tenho esse código a Baixo
<?
$sql = "SELECT * FROM lc_movimento where dia='$dia' AND mes='$mes' AND ano='$ano'AND tipo='$tipo'";
$resultado = mysql_query($sql) or die ("Erro na consulta pacientes");$id = $linha["id"];
$dia1 = $linha["dia"];
$mes1 = $linha["mes"];
$ano1 = $linha["ano"];
$cat1 = $linha["cat"];
$descricao = $linha["descricao"];
$valor1 = $linha["valor"];
?>
<tr valign="baseline">
<td bgcolor="#CCCCCC"><div align="center" class="style4 style10">1</div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10">Dia<? echo $dia1 ?></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10"><? echo $descricao ?></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10">R$<? echo $valor1 ?></div></td><</tr>
E Preciso Que ao final de cada conjuntos de Dia me apareça uma linha amarela ao para colocar os Resultados
Dia Nome
1
1
1
echo Linha Amarela
23
23
echo Linha Amarela
Como nessa imagem a Baixo/applications/core/interface/imageproxy/imageproxy.php?img=http://www.dentalsistemas.com.br/fluxocaixa/images/table.png&key=7011746238f315f6910448b80cf208fac3d29a386dd6c0250c7bd89d08f713c3" alt="table.png" />
Desde já Agradeço a Todos
Ola Amigo eu to quebrando a cabeça aqui tentei fazer mais não consegui. quanto aos calculos eu resolvo. o problema e fazer com que a apareça alinha amarela ao final de cada conjunto de dias
Alguem teria alguma ideia?
Que possa me ajudar
Ola Amigos
Alaguem tem Alguma Ideia?
É so fazer a comparação de duas variáveis, em uma você armazena o dia
se elas forrem igual ou a segunda for nula aparece a linha bege,
se elas forem diferentes você mostra a linha amarela e depois a bege
e no final você faz a ultima ter o valor da primeira,
assim para comparar quando o loop voltar ao inicio
Você poderia fazer de várias formas. Eu proponho uma das duas a seguir:
Exemplo da segunda opção (estou usando PostgreSQL)
<?php
$pdo = new PDO('pgsql:<conn-string>');
$result = $pdo->query("select
(DATE_TRUNC('month',CURRENT_DATE) + CAST(FLOOR(s.idx / 5) || ' day' as interval))::DATE AS data,
'lancamento' as descricao,
CASE WHEN random() < 0.5 THEN ROUND(150 + (random()*100)::numeric,2) ELSE ROUND(150 + (random()*100)::numeric,2) * -1 END as valor
from generate_series(1,24) as s(idx)");
$ultimaData = null;
$acumulado = 0;
$totalEntradaDia = 0;
$totalSaidaDia = 0;
echo '<table>';
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
$date = DateTime::createFromFormat('Y-m-d', $row['data']);
$key = $date->format('Ymd');
if($ultimaData !== null && $ultimaData != $key) {
printf('<tr><td colspan="2">Entrada: %s, Saida: %s, Saldo dia: %s, Saldo acumulado: %s</td></tr>',
number_format($totalEntradaDia,2,',','.'),
number_format($totalSaidaDia,2,',','.'),
number_format($totalEntradaDia + $totalSaidaDia,2,',','.'),
number_format($acumulado,2,',','.')
);
$totalSaidaDia = 0;
$totalEntradaDia = 0;
}
$ultimaData = $key;
printf('<tr><td>%s</td><td>%s</td><td>R$ %s</td></tr>',
$date->format('d'),
$row['descricao'],
number_format($row['valor'],2,',','.')
);
if($row['valor'] > 0) {
$totalEntradaDia += $row['valor'];
} else {
$totalSaidaDia += $row['valor'];
}
$acumulado += $row['valor'];
}
echo '</table>';
printf('<tr><td colspan="2">Entrada: %s, Saida: %s, Saldo dia: %s, Saldo acumulado: %s</td></tr>',
number_format($totalEntradaDia,2,',','.'),
number_format($totalSaidaDia,2,',','.'),
number_format($totalEntradaDia + $totalSaidaDia,2,',','.'),
number_format($acumulado,2,',','.')
);
@braços>
É so fazer a comparação de duas variáveis, em uma você armazena o dia
se elas forrem igual ou a segunda for nula aparece a linha bege,
se elas forem diferentes você mostra a linha amarela e depois a bege
e no final você faz a ultima ter o valor da primeira,
assim para comparar quando o loop voltar ao inicio
Ola Amigo
Seria Isso aqui mais ou menos?
$sql = "SELECT * FROM lc_movimento ";
$resultado = mysql_query($sql) or die ("Erro na consulta pacientes");
while ($linha = mysql_fetch_assoc($resultado)){
$id = $linha["id"];
$dia1 = $linha["dia"];
$mes1 = $linha["mes"];
$ano1 = $linha["ano"];
$cat1 = $linha["cat"];
$descricao = $linha["descricao"];
$valor1 = $linha["valor"];
for ($i = $dia1) {
if ( $i == $i ) {
$table = "<td bgcolor='#000000'></td>";
}else{
$table = "<td bgcolor='#ffffff'></td>";
}
}
}Pelo que eu entendi, você quer a alternância das cores do bege claro e do escuro
e quando a repetição dos dias mudar, uma no linha amarela com valores diferentes tem que aparecer
<?php
$sql = "SELECT * FROM lc_movimento where dia='$dia' AND mes='$mes' AND ano='$ano'AND tipo='$tipo'";
$resultado = mysql_query($sql) or die ("Erro na consulta pacientes");
$diaComp = 0;
$cor = 0;
while ($linha = mysql_fetch_assoc($resultado)){
$cor++;
$style = ($cor % 2 == 0) ? "#FFF" : "000";
$id = $linha["id"];
$dia1 = $linha["dia"];
$mes1 = $linha["mes"];
$ano1 = $linha["ano"];
$cat1 = $linha["cat"];
$descricao = $linha["descricao"];
$valor1 = $linha["valor"];
if($dia1 == $diaComp || !$diaComp){
?>
<!-- Linha Bege -->
<tr valign="baseline" style="background-color: <?php echo $style ?>">
<td bgcolor="#CCCCCC"><div align="center" class="style4 style10">1</div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10">Dia<? echo $dia1 ?></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10"><? echo $descricao ?></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10">R$<? echo $valor1 ?></div></td>
</tr>
<?php
} else{
?>
<!-- Linha Amarela -->
<tr valign="baseline" >
...
</tr>
<!-- Linha Bege -->
<tr valign="baseline" style="background-color: <?php echo $style ?>">
<td bgcolor="#CCCCCC"><div align="center" class="style4 style10">1</div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10">Dia<? echo $dia1 ?></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10"><? echo $descricao ?></div></td>
<td bgcolor="#CCCCCC"><div align="center" class="style7 style10">R$<? echo $valor1 ?></div></td>
</tr>
<?php
}
}
?>>
Você poderia fazer de várias formas. Eu proponho uma das duas a seguir:
Exemplo da segunda opção (estou usando PostgreSQL)
<?php
$pdo = new PDO('pgsql:<conn-string>');
$result = $pdo->query("select
(DATE_TRUNC('month',CURRENT_DATE) + CAST(FLOOR(s.idx / 5) || ' day' as interval))::DATE AS data,
'lancamento' as descricao,
CASE WHEN random() < 0.5 THEN ROUND(150 + (random()*100)::numeric,2) ELSE ROUND(150 + (random()*100)::numeric,2) * -1 END as valor
from generate_series(1,24) as s(idx)");
$ultimaData = null;
$acumulado = 0;
$totalEntradaDia = 0;
$totalSaidaDia = 0;
echo '<table>';
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
$date = DateTime::createFromFormat('Y-m-d', $row['data']);
$key = $date->format('Ymd');
if($ultimaData !== null && $ultimaData != $key) {
printf('<tr><td colspan="2">Entrada: %s, Saida: %s, Saldo dia: %s, Saldo acumulado: %s</td></tr>',
number_format($totalEntradaDia,2,',','.'),
number_format($totalSaidaDia,2,',','.'),
number_format($totalEntradaDia + $totalSaidaDia,2,',','.'),
number_format($acumulado,2,',','.')
);
$totalSaidaDia = 0;
$totalEntradaDia = 0;
}
$ultimaData = $key;
printf('<tr><td>%s</td><td>%s</td><td>R$ %s</td></tr>',
$date->format('d'),
$row['descricao'],
number_format($row['valor'],2,',','.')
);
if($row['valor'] > 0) {
$totalEntradaDia += $row['valor'];
} else {
$totalSaidaDia += $row['valor'];
}
$acumulado += $row['valor'];
}
echo '</table>';
printf('<tr><td colspan="2">Entrada: %s, Saida: %s, Saldo dia: %s, Saldo acumulado: %s</td></tr>',
number_format($totalEntradaDia,2,',','.'),
number_format($totalSaidaDia,2,',','.'),
number_format($totalEntradaDia + $totalSaidaDia,2,',','.'),
number_format($acumulado,2,',','.')
);
@braços
Ola amigo Obrigado pela ajuda
mais Não funcionou não sei se é porque to usando sql aqui
O que eu to precisando é isso/applications/core/interface/imageproxy/imageproxy.php?img=http://www.dentalsistemas.com.br/fluxocaixa/images/table2.png&key=f27fa7238c2050ee2ede4becd39e76facd137c0a85069eee80d47e69d57d1cdb" alt="table2.png" />
aonde eu coloquei
<!-- Linha Amarela -->
<tr valign="baseline" >
...
</tr>ha alguns dias atras tambem estava tentando fazer algo parecido neste post
tentei calcular o numero de linhas q correspondem ao cliente, no seu caso igual ao dia, e depois do numero total de linhas, criar uma linha a mais com o resultado total por cliente, mas também nao deu.
>
aonde eu coloquei
<!-- Linha Amarela -->
<tr valign="baseline" >
...
</tr>Ola Wiliam
ta aparecendo assim/applications/core/interface/imageproxy/imageproxy.php?img=http://www.dentalsistemas.com.br/fluxocaixa/images/table3.png&key=fc360481339df885277eb146d1c0c69c4a3adc54618c190600685cb05904c122" alt="table3.png" />
Não funcionou o que?
O banco de dado não tem nada a ver.
Usei postgres porque não tenho sua estrutura.
A origem dos dados tanto faz. O importante é a lógica.
Se copiar e colar não vai funcionar mesmo.
Leia e releia o post que fiz que irá funcionar sim.
Veja um exemplo de como ficou o resultado
/applications/core/interface/imageproxy/imageproxy.php?img=http://s10.postimg.org/q1z6sz0vd/Captura_de_Tela_2014_03_13_s_11_41_34.png&key=716f3462e6e83f05d155f24ba1fd894c5d6c27ae71ec47ed73fe2ae379f47e73" alt="Captura_de_Tela_2014_03_13_s_11_41_34.pn" />
Basta estudar o exemplo e aplicar os mesmos fundamentos no seu código.
Como eu disse anteriormente, somente copiar e colar não funcionar mesmo
Também não adianta falar só que não funcionou. Diga o que fez e o que deu errado. Do contrário, fica dificil ajudar.
>
Não funcionou o que?
O banco de dado não tem nada a ver.
Usei postgres porque não tenho sua estrutura.
A origem dos dados tanto faz. O importante é a lógica.
Se copiar e colar não vai funcionar mesmo.
Leia e releia o post que fiz que irá funcionar sim.
Veja um exemplo de como ficou o resultado
/applications/core/interface/imageproxy/imageproxy.php?img=http://s10.postimg.org/q1z6sz0vd/Captura_de_Tela_2014_03_13_s_11_41_34.png&key=716f3462e6e83f05d155f24ba1fd894c5d6c27ae71ec47ed73fe2ae379f47e73" alt="Captura_de_Tela_2014_03_13_s_11_41_34.pn" />
Basta estudar o exemplo e aplicar os mesmos fundamentos no seu código.
Como eu disse anteriormente, somente copiar e colar não funcionar mesmo
Também não adianta falar só que não funcionou. Diga o que fez e o que deu errado. Do contrário, fica dificil ajudar.
Ola Amigo
desculpa a minha ignorância mais ainda sou meio leigo em funções que voce colocou no select eu copiei e colei mais alterando de acordo com minha base mais não conceguir
Não adianta você copiar e colocar vc tem que entender
o codigo que eu fiz é para a base do seu projeto mais repare nas linhas que estão diferentes, oq elas fazem, se precisa de alguma adaptação para funcionar
>
Não funcionou o que?
O banco de dado não tem nada a ver.
Usei postgres porque não tenho sua estrutura.
A origem dos dados tanto faz. O importante é a lógica.
Se copiar e colar não vai funcionar mesmo.
Leia e releia o post que fiz que irá funcionar sim.
Veja um exemplo de como ficou o resultado
/applications/core/interface/imageproxy/imageproxy.php?img=http://s10.postimg.org/q1z6sz0vd/Captura_de_Tela_2014_03_13_s_11_41_34.png&key=716f3462e6e83f05d155f24ba1fd894c5d6c27ae71ec47ed73fe2ae379f47e73" alt="Captura_de_Tela_2014_03_13_s_11_41_34.pn" />
Basta estudar o exemplo e aplicar os mesmos fundamentos no seu código.
Como eu disse anteriormente, somente copiar e colar não funcionar mesmo
Também não adianta falar só que não funcionou. Diga o que fez e o que deu errado. Do contrário, fica dificil ajudar.
Ola Hufersil
Me da Uma Luz Ai... To tentando de varias maneiras mais esta dando um erro aqui e não estou sabendo fazer funcionar
Erro: Conexão Efetuada com sucesso!Array ( [0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'interval))::DATE AS data, 'descricao' as descricao, CASE WHEN random() < ' at line 2 )
Minha Base esta assim ( lc_movimento )
Id | descricao | data | valor
<?php
//include"config.php";
$pdo = new PDO("mysql:host=localhost;dbname=mrangelc_teste", "mrangelc_01", "" );
//$pdo = new PDO('pgsql:<conn-string>');
$result = $pdo->query("select
(('month',CURRENT_DATE) + CAST(FLOOR(s.idx / 5) || ' day' as interval))::DATE AS data,
'descricao' as descricao,
CASE WHEN random() < 0.5 THEN ROUND(150 + (random()*100)::numeric,2) ELSE ROUND(150 + (random()*100)::numeric,2) * -1 END as valor
from lc_movimento(1,24) as s(idx)");
$ultimaData = null;
$acumulado = 0;
$totalEntradaDia = 0;
$totalSaidaDia = 0;
echo '<table>';
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
$date = DateTime::createFromFormat('Y-m-d', $row['data']);
$key = $date->format('Ymd');
if($ultimaData !== null && $ultimaData != $key) {
printf('<tr><td colspan="2">Entrada: %s, Saida: %s, Saldo dia: %s, Saldo acumulado: %s</td></tr>',
number_format($totalEntradaDia,2,',','.'),
number_format($totalSaidaDia,2,',','.'),
number_format($totalEntradaDia + $totalSaidaDia,2,',','.'),
number_format($acumulado,2,',','.')
);
$totalSaidaDia = 0;
$totalEntradaDia = 0;
}
$ultimaData = $key;
printf('<tr><td>%s</td><td>%s</td><td>R$ %s</td></tr>',
$date->format('d'),
$row['descricao'],
number_format($row['valor'],2,',','.')
);
if($row['valor'] > 0) {
$totalEntradaDia += $row['valor'];
} else {
$totalSaidaDia += $row['valor'];
}
$acumulado += $row['valor'];
}
echo '</table>';
printf('<tr><td colspan="2">Entrada: %s, Saida: %s, Saldo dia: %s, Saldo acumulado: %s</td></tr>',
number_format($totalEntradaDia,2,',','.'),
number_format($totalSaidaDia,2,',','.'),
number_format($totalEntradaDia + $totalSaidaDia,2,',','.'),
number_format($acumulado,2,',','.')
);
Desde já agradeço pela ajuda
/applications/core/interface/imageproxy/imageproxy.php?img=http://3.bp.blogspot.com/-W4GGm2uQcCw/UikVkPI5CxI/AAAAAAAABz4/6P5I8A1k9XM/s1600/AI%2BMEU%2BDEUS.jpg&key=dc6e189d88d14d49333e460fdeb4e5a8a76ce4d1d5e44fed890d842a0e4868e4" alt="AI+MEU+DEUS.jpg" />
Você fez exatamente o que pedi para NÃO fazer.... você só copiou e colou o código que mandei e nem se atentou que é para o banco de dados PostgreSQL...
Depois dessa, a partir de agora estou ignorando este tópico.
[]'s
Muita Coisa que consegui aprender de PHP, foi através deste Fórum e de Pessoas atenciosas e dispostas a ensinar... infelizmente hoje me deparo com respostas vazias e sem interesse em ajudar.
Copiei e colei sim Pois é assim que vou aprendendo...
Sem interesse? Resposta vazia?
Por favor...
Dê uma lida nos posts anteriores que te mandei, tentando te ajudar, e veja se foram realmente "respostas vazias" ou "sem interesse em ajudar". Perdi meu tempo desenvolvendo código para lhe auxiliar e é assim que sou agradecido...
Estava com disposição, até hoje. Mas vendo sua falta de tentativa em entender o que é lhe passado, fiquei desanimado sim - em ajudar você. Dá uma navegada melhor no fórum e veja meus posts e verá se ajudo ou não quem tem interesse em aprender.
As vezes ficar ajudando quem quer a resposta pronta cansa, ainda mais quando se tem 11 anos de fórum.
Copiar e colar sem ler e fazer uma interpretação do que foi passado não é e nunca foi aprender.
>
Sem interesse? Resposta vazia?
Por favor...
Dê uma lida nos posts anteriores que te mandei, tentando te ajudar, e veja se foram realmente "respostas vazias" ou "sem interesse em ajudar". Perdi meu tempo desenvolvendo código para lhe auxiliar e é assim que sou agradecido...
Estava com disposição, até hoje. Mas vendo sua falta de tentativa em entender o que é lhe passado, fiquei desanimado sim - em ajudar você. Dá uma navegada melhor no fórum e veja meus posts e verá se ajudo ou não quem tem interesse em aprender.
As vezes ficar ajudando quem quer a resposta pronta cansa, ainda mais quando se tem 11 anos de fórum.
Copiar e colar sem ler e fazer uma interpretação do que foi passado não é e nunca foi aprender.
Amigão esta cheio de gente que quer ajuda "Pronta" não vai ser a primeira vez que nos deparamos com isso
Você tentou fazer isso? Há alguma dúvida em relação ao que está tentando fazer? Do jeito que postou parece que precisa de algo e quer que alguém faça.