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

Pedro12345

[Resolvido] Dúvida MySQL e PHP- Mostrar valores

Mensagens Recomendadas

Pedro12345

Olá a todos!! :)

Estou a desenvolver uma plataforma Web e encontrei-me aqui com uma questão que não estou a conseguir resolver.

Tenho criado uma base de dados com as seguintes informações:

$db_name="name"; // Database name
$tabela="dados"; // Table name

Eu pretendo alocar dentro de duas opções select os valores que tenho da coluna Data|Hora da minha tabela.

A questão é que eu apenas consegui colocar o ultimo valor. Ou seja desta forma:

kru8.jpg

Tendo utilizado o seguinte código:

<head>
<title>Intervalo Tempo</title>
</head>
<body>
<?php
include('config.php');
$sql="select * from dados";
$query=mysql_query($sql) or die ("Nao seleccionou tabela!");
$linhas=mysql_num_rows($query);
for($i=0;$i<$linhas;$i++)
{
$data=mysql_result($query,$i,'data');
}
echo "<h3><u><b><font color='green'>Intervalo de Tempo</h3></u></b><br>";
echo"<form method=post name=formulario action=menu.php>
    <td><b><font color='blue'>Data|Hora início:</b></td>
    <td><select>
    <option name=Data ínicio value='data'>$data</option>
    </select></td><br><br>

    <td><b> Data|Hora fim:</b></td>
    <td><select>
    <option name=Data fim value=$data>$data</option>
    </select></td><br><br>

    <input type=submit value=Visualizar><br></form>";
?>
<?php
mysql_close();
echo"<br><br><center><b><a href=menu.php>Voltar<br> <img src=retroceder.gif alt=Retroceder></a></b><br><br>";
?>
</body>
</html>

Depois do utilizador escolher a data e hora, através do selecionar, gostaria que ele ao clicar no botão visualizar fosse direcionado para outra janela, com o nome registodados.php na qual iria aparecer os dados entre os intervalos de tempo selecionado.

Para melhor perceberem, irei colocar de seguinte duas imagens com os dados que desejaria serem mostrados:

5qkb.jpg

Eu pretendia que mostrasse esta tabela, na nova janela criada registosdados.php, mas apenas dentro do intervalo de tempo escolhido nas caixas select anteriores..

Pretendia também depois na mesma página mostrar noutra tabela abaixo estes dados:

5zrk.jpg

Sei que devo utilizar a função between..

Talvez deva guardar para duas várias diferentes a data inicio e data fim escolhida pelo utilizador, e depois fazer algum POST e mandar as mesmas para página registosdados.php e a partir daí mostrar só os valores e médias etc, que pretender entre esse intervalo..

Algúem me pode dar uma ajuda??

Obrigado!!!

Editado por Pedro12345

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Boas,

o problema ai é que estás a adicionar apenas um "Option" no select, e apenas com a variavel $data, que vem do for que usaste no inicio.

Para resolveres, tens de fazer esse for (ou while) na parte onde adicionas a option ao select.

Ou seja, adicionar uma option para cada registo retornado da base de dados

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pedro12345

As minhas duvidas principais continuam a ser as seguintes:

  • Colocar dentro da caixa select todos os dados da coluna Data|hora??
  • Como guardar os valores escolhidos em cada caixa para duas variáveis??
  • Como reencaminhar os valores para uma pagina de nome registadosdados.php enviando para lá as duas variáveis anteriormente escolhidas ($POST[])?

Tenho tentado fazer o ciclo for dentro do option, mas aparece constante erros!!

Será que me podes ajudar??

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Devexz

Tal como foi dito em cima tens de percorrer os resultados e gerar o select dinamicamente.

$result = mysql_query($sql);//query
<select>
while($row = mysql_fetch_array() ) {//percorrer os resultados

    echo '<otption value = $row["campo"]>$row["campo"]</option>';// criar a option com os campos desejados
}
</select>


Ás vezes, mais vale deixar a assinatura em branco.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pedro12345

Consegui colocar dentro das caixas select a opção com os valores da coluna data que continha a data e hora utilizando o principal código:

$consulta1=mysql_query("SELECT *FROM dados order by data ASC");
$consulta2=mysql_query("SELECT *FROM dados order by data ASC");
echo "<h3><u><b><font color='green'>Intervalo de Tempo</h3></u></b><br>";
echo"<form method=post name=formulario action=intervalodados.php>
 <td><b><font color='blue'>Data|Hora início:</b></td>
 <td><select>";
 while ($dados1 = mysql_fetch_array($consulta1)) {
   echo("<option name=Data inicio value='".$dados1['data']."'>".$dados1['data']."</option>");
  }
 echo"</select></td><br><br>";

 echo"<td><b>   Data|Hora fim:</b></td>
 <td><select>";
 while ($dados2 = mysql_fetch_array($consulta2)) {
   echo("<option name=Data fim value='".$dados2['data']."'>".$dados2['data']."</option>");
  }
 echo"</select></td><br><br>

 <input type=submit value=Visualizar><br></form>";
?>
<?php
mysql_close();
echo"<br><br><center><b><a href=menu.php>Voltar<br> <img src=retroceder.gif alt=Retroceder></a></b><br><br>";
?>
</body>
</html>

Agora a minha dúvida é:

2. Como guardar o nome das variáveis escolhidas em cada opção (data inicio e data fim) e colocar as mesmas numa outra página php criada quando clicar em visualizar?

Ou seja, depois de clicar em visualizar, ser dirigido para uma pagina php, que neste caso, estou a mencionar:

echo"<form method=post name=formulario action=intervalodados.php>

a intervalodados.php.

Posteriormente a ter em duas variáveis a data/hora inicio/fim escolhidas, pretendo mostrar os valores da tabela apenas entre a Datas|Horas escolhida pelo utilizador, assim como a média de temperaturas, como a temperatura mínima e máxima, como mostrei nos exemplos das imagens acima!!

Eu penso que seja pelo POST[], mas agradeço sugestões!!

Abraço,

Pedro

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pedro12345

Bem, fiz o POST colocando um name na opção Select:

echo"<form method='POST' name='formulario'  multiple='multiple' action=intervalodados.php>
<td><b><font color='blue'>Data | Hora início:</b></td>
<td><select name='selectedValue1[]'>";
while ($dados1 = mysql_fetch_array($consulta1)) {
echo("<option name=Data inicio value='".$dados1['data']."'>".$dados1['data']."</option>");
}
echo"</select></td><br><br>";

echo"<td><b>   Data | Hora fim:</b></td>
<td><select name='selectedValue2[]'>";
while ($dados2 = mysql_fetch_array($consulta2)) {
echo("<option name=Data fim value='".$dados2['data']."'>".$dados2['data']."</option>");
}
echo"</select></td><br><br>

<button type='submit'>Visualizar</submit></form><br>";

Depois na página intervalodados.php,

coloquei o seguinte código:

<?php
   foreach ($_POST['selectedValue1'] as $datainicio) {
       echo ($datainicio);
   }

foreach ($_POST['selectedValue2'] as $datafim) {
       echo ( $datafim);
   }
?>

E estou a ter como resultado as datas que escolhi!! :)

O terceiro ponto agora é mesmo como mostrar os dados e calcular a média apenas entre esse intervalo de valores...

Alguma sugestão??

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.