Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 492787
            [titulo] => Filtrar datas que já estão do Banco de Dados
            [dataCadastro] => DateTime Object
                (
                    [date] => 2014-09-19 13:30:30
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 269142
            [status] => M
            [isExample] => 
            [NomeUsuario] => William 
            [Apelido] => William (Devwilliam)
            [Foto] => 269142_20150809195205.jpg
            [Conteudo] => Você vai  ter que fazer um select no banco e verificar se a data já está cadastrada, tudo isso dentro do loop para capturar a data que está sendo gerada!

Montei um exemplo só com a lógica da ideia.

[code]
<?php

$begin = new Datetime('now');
$end = new Datetime('now');
$end->add( new Dateinterval( 'P30D' ) );

while( $end->diff( $begin, true )->days )
{
// Instruçao SQL 'SELECT campo FROM tabela WHERE data = datagerada'

if(retorno == vazio){
$begin->add( new DateInterval( 'P1D' ) );
printf( '<option value="%s">%s', strftime( '%Y-%m-%d', strtotime( $begin->format( 'Y-m-d' ) ) ), strftime( '%a, %d/%m/%Y', strtotime( $begin->format( 'Y-m-d' ) ) ) );
echo"</option>";
}
}
?>
[/code] ) )

Filtrar datas que já estão do Banco de Dados

PHP
Lucas Azevedo
   - 19 set 2014

Galera peço a ajuda de vocês aqui, tenho o seguinte codigo que gera um select com lista de datas começando de "do dia atual até 30 dias a frente". até ai tudo ok!
O que eu quero? quero que se uma determinada data dessa lista já estiver cadastrada no banco de dados ela não seja listada no select. deu pra entender?
Tô sem ideias de como fazer..

#Código

<?php

$begin = new Datetime('now');       
$end   = new Datetime('now');
$end->add( new Dateinterval( 'P30D' ) );

while( $end->diff( $begin, true )->days )
{
    $begin->add( new DateInterval( 'P1D' ) );
    printf( '<option value="%s">%s', strftime( '%Y-%m-%d', strtotime( $begin->format( 'Y-m-d' ) ) ), strftime( '%a, %d/%m/%Y', strtotime( $begin->format( 'Y-m-d' ) ) ) );
    echo"</option>";
}
?>

Agradeço desde já as ajudas!
Valeu!

Post mais votado

William (devwilliam)
   - 19 set 2014

Você vai ter que fazer um select no banco e verificar se a data já está cadastrada, tudo isso dentro do loop para capturar a data que está sendo gerada!

Montei um exemplo só com a lógica da ideia.

#Código

<?php

$begin = new Datetime('now');       
$end   = new Datetime('now');
$end->add( new Dateinterval( 'P30D' ) );

while( $end->diff( $begin, true )->days )
{
   // Instruçao SQL 'SELECT campo FROM tabela WHERE data = datagerada'

    if(retorno == vazio){
         $begin->add( new DateInterval( 'P1D' ) );
         printf( '<option value="%s">%s', strftime( '%Y-%m-%d', strtotime( $begin->format( 'Y-m-d' ) ) ), strftime( '%a, %d/%m/%Y', strtotime( $begin->format( 'Y-m-d' ) ) ) );
         echo"</option>";
    }
}
?>

1
|
0

Lucas Azevedo
   - 19 set 2014

Willian muito obrigado!
Conseguir fazer funcionar assim

#Código

<?php

$begin = new Datetime('now');       
$end   = new Datetime('now');
$end->add( new Dateinterval( 'P30D' ) );

while( $end->diff( $begin, true )->days )
{
    $begin->add( new DateInterval( 'P1D' ) );
    $datagera = $begin->format( 'Y-m-d');

// consulta Resultados
    $consultSQL=$pdo->prepare("SELECT * FROM tbhorario WHERE data = '$datagera'");
    $consultSQL->execute();
    $linha=$consultSQL->fetch(PDO::FETCH_ASSOC);
    $data1=$linha['data'];

if($data1 != $datagera){     
    printf( '<option value="%s">%s', strftime( '%Y-%m-%d', strtotime( $begin->format( 'Y-m-d' ) ) ), strftime( '%a, %d/%m/%Y', strtotime( $begin->format( 'Y-m-d' ) ) ) );
    echo"</option>";
}}
?>


Teria como melhorar? ou está bom?

Obrigado!

0
|
0

William (devwilliam)
   - 19 set 2014

De cara já aconselho a não usar 'SELECT *', troque por 'SELECT count(*)' ou por apenas um campo 'SELECT id', esse '*' judia do banco de dados dependendo da quantidade de campos!

1
|
0

Lucas Azevedo
   - 19 set 2014

Muito Obrigado pela Ajuda William!

0
|
0

William (devwilliam)
   - 19 set 2014

Disponha, estou finalizando tópico!

1
|
0