Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

ivan919

[Resolvido] Listar eventos

Mensagens Recomendadas

ivan919

Bom dia,

Tenho que listar os eventos de uma tabela por dia.

quando o programa é aberto mostra os eventos do dia e tem que ter dois botões um para mostrar os eventos dos dias anteriores e outro dos dias seguintes.

Consegui listar os eventos do dia actual, mas nao sei como passar para os eventos dos outros dias.

Alguem me consegue dar alguma ideia de como o posso fazer? obrigado

<?php
$ano = date("Y");
$mes = date("m");
$dia = date("d");
$data= date("$ano-$mes-$dia");
echo $data ;
//DATA ATUAL
echo "<center> <br>";

// SELECT EVENTOS
$result = mysql_query("select * from evento where data_evento ='" . $data . "'");
echo ("<form method='POST'><br>");
echo ("<table border width=700px>");
echo ("<tr>");
echo ("<td><b>ID</b></td>");
echo ("<td><b>Nome</b></td>");
echo ("<td><b>Data</b></td>");
echo ("<td><b>Local</b></td>");
echo ("</tr>");

while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['id_evento'] . "</td>";
 echo "<td>" . $row['nome'] . "</td>";
 echo "<td>" . $row['data_evento'] . "</td>";
 echo "<td>" . $row['local'] . "</td>";
 echo "</tr>";
 }
echo"</table>";

?>

tinha algumas tentativas frustradas de fazer o que queria mas apaguei por nao estarem a funcionar

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

Assim?

$hoje=date('Y-m-d');
$amanha=date('Y-m-d', strtotime(' +1 day'));
$dpsdeamanha=date('Y-m-d', strtotime(' +2 day'));

Have fun!!

  • Voto 1

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ivan919

Bem usei um form para ir para outra pagina onde tira um dia ou acrescenta um dia, mas quando tento por exemplo avancar de novo mais um dia nao da :/

tenho algo assim para os dias seguintes:

$dia=date("d");
$mes=date("m");
$ano=date("Y");
$diaseguinte=$dia+1;
$data= date("$ano-$mes-$diaseguinte");
echo $data;
?>
<form action="diaanterior.php" method="post">
<input type="submit" value="Dia Anterior">
</form>
<form action="diaseguinte.php" method="post">
<input type="submit" value="Dia Seguinte">
</form>

como posso fazer para avançar sempre mais um dia?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

Não cries um ficheiro para cada situação. Passa o valor por post. Ou então usa apenas um select no teu form:

$anteontem=date('Y-m-d',strtotime($date.'-2 day'));
$ontem=date( 'Y-m-d', strtotime($date.'-1 day'));
$hoje=date('Y-m-d');
$amanha=date('Y-m-d', strtotime('+1 day'));
$dpsdeamanha=date('Y-m-d', strtotime('+2 day'));

<form action="listaeventos.php" method="post">
<input type="submit" value="Anteontem">
<input type="hidden" id="blable" name="qualdia" value="<?php echo $anteontem; ?>">
</form>

<form action="listaeventos.php" method="post">
<input type="submit" value="Dia Anterior">
<input type="hidden" id="blabla" name="qualdia" value="<?php echo $ontem; ?>">
</form>

<form action="listaeventos.php" method="post">
<input type="submit" value="Hoje">
<input type="hidden" id="blabli" name="qualdia" value="<?php echo $hoje; ?>">
</form>

<form action="listaeventos.php" method="post">
<input type="submit" value="Amanhã">
<input type="hidden" id="blablo" name="qualdia" value="<?php echo $amanha; ?>">
</form>

<form action="listaeventos.php" method="post">
<input type="submit" value="Depois de Amanhã">
<input type="hidden" id="blablu" name="qualdia" value="<?php echo $dpsdeamanha; ?>">
</form>

<form action="listaeventos.php" method="post">
<select name="escolhedia">
	<option value="" selected="Numero a avançar"></option>
	<option value="4">Avançar 4 dias</option>
	<option value="5">Avançar 5 dias </option>
	<option value="10">Avançar 10 dias</option>
	<option value="20">Avançar 20 dias</option>
</select>
<input type="submit" name="submit" />
</form>

No ficheiro listaeventos.php agarras no valor que chega:

$dia = $_POST['qualdia'];

ou para agarrares no valor do select:

$quantosdias=$_POST['escolhedia'];
$dia=date('Y-m-d', strtotime('+$quantosdias day'));

e fazes a tua query:

$result = mysql_query("select * from evento where data_evento ='" . $dia . "'");

Vendo bem até podes por apenas um select.

Atenção a alguma gralha. não testei.

Have Fun! ;)


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ivan919

Acho que nao me fiz bem entender, eu preciso que seja possível ver os eventos de qualquer dia, nao so de ontem ou anteontem ou amanha e depois de amanha, de inicio mostra os eventos do dia quando carrego no dia seguinte passa para os eventos do dia seguinte se carregar de novo acontece o mesmo e de novo de novo de novo...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

Ok. O select não te permite fazer isto?


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ivan919

quando faço o select uso o $dia para mostrar o dia pretendido, o problema e fazer com que consiga avançar sempre nos dias e nao apenas um dia como me esta acontecer

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

então faz um incremento no proximo dia:

$estadata=date('Y-m-d'); //pedes a data ao php só uma vez na página correspondente a hoje

<form action="listaeventos.php" method="post">
<input type="submit" value="Dia seguinte">
<input type="hidden" id="blablu" name="proximodia" value="<?php echo $estadata; ?> ">
</form>

$qtsdias=$_POST['proximodia'];
$qtsdias=strtotime($qtsdias);

//incrementas a data
$dia=(strtotime("+1 day", $qtsdias);

//a tua query do dia seguinte
$result = mysql_query("select * from evento where data_evento ='" . $dia . "'");

//para o teu form de dia seguinte. Envias esta data junto com os dados e utilizas esta no form.
$estadata=$dia;

Se não for isto ainda é porque não estou a perceber. Sorry. O Tico apagou-se e não me avisou :P

também tens como opção as funções do MySql

Editado por Virneto

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Virneto

O [stringToTime] aceita uma String que, estando num formato válido, a converte timestamp.

manual php


"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.