Ir para conteúdo

Arquivado

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

aryy_diaz

Gerar relatório de aniversariantes pelo mês.

Recommended Posts

OLA AMIGOS .. É o seguinte, criei um select option ( com todos os meses do ano)
o objetivo era selecionar um mes aperta no botão( Gerar relatório ) e assim imprimir na minha tabela os aniversários daquele mês.
Só que eu não sei qual erro que eu to cometendo que não imprimi .

<?php include 'conexao.php'; ?>

<h1>Relatório de Aniversariantes</h1>
<br/>

    <center>
        <form method="post" action="relatorioaniversariantes.php">
            Selecione o mes que deseja a relação:
            <select name="mes">
                <option value="selecione" name="mes" >Selecione</option>
                <option value="Janeiro" name="mes">Janeiro</option>
                <option value="Fevereiro" name="mes">Fevereiro</option>
                <option value="Março" name="mes">Março</option>
                <option value="Abril" name="mes">Abril</option>
                <option value="Maio" name="mes">Maio</option>
                <option value="Junho" name="mes">Junho</option>
                <option value="Julho" name="mes">Julho</option>
                <option value="Agosto" name="mes">Agosto</option>
                <option value="Setembro" name="mes">Setembro</option>
                <option value="Outubro" name="mes">Outubro</option>
                <option value="Novembro" name="mes">Novembro</option>
                <option value="Dezembro" name="mes">Dezembro</option>
            </select>
            <input type="submit" value=" Gerar Relatório " name="gerar">
        </form>
    </center>
    <br/><br/>

    <?php
    $mes = date("mes");
    $dia = date("dia");
    
    $resultado = mysql_query("SELECT nome, DAY(dataAniversario) AS dia,"
            . " MONTH(dataAniversario) AS mes FROM dadoscliente");
    
   echo"<center><table width='50%' border='1' class='bordasimples'style='background-color: #fbe7e7 ; font-family: Arial Unicode MS' >";
   echo"<tr>";
   echo"<th>DIA</th>";
   echo"<th>NOME</th>";
   echo"<th>MÊS</th>";
   echo"</tr>";
    
   while ($row = mysql_fetch_array($resultado)) {
    if ($row['mes'] == $_mes)
    {
echo "<tr>";
echo "<td>".$row['dia']."</td>";
echo "<td>".$row['nome']."</td>";
echo "<td>".$row['mes']."</td>";
echo "</tr>";
   }
   }
echo "</table></center>";

    ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pela sua query vou assumir que o campo é date (ano-mês-dia), então o primeiro pronto:

if ($row['mes'] == $_mes)

'mes' contêm o mês numérico, $mes contêm o mesmo por extenso...

 

Segundo ponto, em vez de usar essa gambiarra horrorosa, basta:

$resultado = mysql_query("SELECT nome, DAY(dataAniversario) AS dia," . " MONTH(dataAniversario) AS mes FROM dadoscliente WHERE month(dataAniversario) = '10'");

Onde 10 é o mês (no caso outubro), ai você remove aquele if de dentro do laço e boa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado O.o ajudou abrir minha mente .

Na verdade meu select option estava com value "letras", mas na verdade meu banco guarda a data como "números". E alterei o meu if, colocando o POST .

 

E deu tudo certo .

Segue o código, se alguem precisar ta ai :)

<center>
    <form method="post" action="relatorioaniversariantes.php">
        Selecione o mes que deseja a relação:
        <select name="mes">
            <option value="selecione"  name="mes"></option>
            <option value="01" name="mes">Janeiro</option>
            <option value="02" name="mes">Fevereiro</option>
            <option value="03" name="mes">Março</option>
            <option value="04" name="mes">Abril</option>
            <option value="05" name="mes">Maio</option>
            <option value="06" name="mes">Junho</option>
            <option value="07" name="mes">Julho</option>
            <option value="08" name="mes">Agosto</option>
            <option value="09" name="mes">Setembro</option>
            <option value="10" name="mes">Outubro</option>
            <option value="11" name="mes">Novembro</option>
            <option value="12" name="mes">Dezembro</option>
        </select>
        <input type="submit" value="Gerar Relação" name="gerar">
    </form>
</center>
<br/><br/>

<?php
$mes = $_POST['mes'];

$resultado = mysql_query("SELECT nome, DAY(dataAniversario) AS dia," . " MONTH(dataAniversario) AS mes FROM dadoscliente WHERE MONTH(dataAniversario) = '$mes'");

echo"<center><table width='50%' border='1' class='bordasimples'style='background-color: #fbe7e7 ; font-family: Arial Unicode MS' >";
echo"<tr>";
echo"<th>DIA</th>";
echo"<th>MÊS</th>";
echo"<th>NOME</th>";
echo"</tr>";

while ($row = mysql_fetch_array($resultado)) {
    if ($row['mes'] == $_POST ['mes']) {
        echo "<tr>";
        echo "<td>" . $row['dia'] . "</td>";
        echo "<td>" . $row['mes'] . "</td>";
        echo "<td>" . $row['nome'] . "</td>";
        echo "</tr>";
    } else {
        echo "<script type='text/javascript'>";
        echo "alert('NÃO EXISTE ANIVERSARIANTES NESSE MÊS.')";
        echo "</script>";
    }
}
echo "</table></center>";
?>
<br/>

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.