Ir para o conteúdo
asom

Arrays e ciclos

Mensagens Recomendadas

asom

Boas pessoal,

Sou aluno de redes, só que como trabalho e não tive outra hipótese o meu estágio é a programar em casa e não tenho experiencia nenhuma em php, só mesmo o básico.

Alguém me pode ajuda! :( ando a dias a tentar fazer um ciclo, array para isto. :( alguém me pode indicar o código correto para isto, fico agradecido.

echo '<table id=geral >
<tr><th>Questão</th><th>Descrição</th><th>Média</th><th>Mediana</th><th>Desvio</th></tr>';

echo "<tr><td>1</td><td>Modo como decorreu</td><td>". number_format($mq1,3)."</td>
<td><center>".$mediana1."</center></td><td><center>". number_format($dp1,3). "</center></td></tr>";
echo "<tr class='alt'><td>2</td><td>Desempenho</td><td>". number_format($mq2,3)."</td>
<td><center>".$mediana2."</center></td><td><center>". number_format($dp2,3). "</center></td></tr>";

echo '</table><br>';

O objetivo é dar uma tabela com o cabeçalho a dizer Questão, Descrição, media, mediana e desvio e por baixo os numero da questão, descrição no primeiro exemplo é Modo como correu e valores media etc, assim como está funciona, só que me mandaram fazer um ciclo. Mas tem <tr> e <th> e isso complica para mim que não sei praticamente nada de php.

Se alguém puder indicar o código agradeço. :(

Editado por brunoais
geshi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

fazer um ciclo sem a existência do array que irá alimentar-lo não só é estranho como desnecessário

no entanto o que deverias ter seria:

$array = array();
$array[] = array(/* os teus dados */); // cabeçalho
$array[] = array(/* dados da primeira linha */);
$array[] = array(/* dados da segunda linha */);
//...

$html = '<table>';
foreach ($array as $key => $record)
{
 $html .= '<tr>';
 foreach ($record as $column)
 {
   $html .= $key ? '<td>'.$column.'</td> : '<th>'.$column.'</th> ;
 }
 $html .= '</tr>';
}
$html .= '</table>';

echo $html;


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ICETuga

O meu primeiro conselho, seria não usares echos para contruir esta tabela, colocar o código PHP no meio do HTML onde as variaveis irão mudar.

O $mediana, $mq, e $dp são arrays? Ou variáveis individuais?

Se são Arrays, qualquer coisa como isto.

$numerototaldequestões = 10;
$cabecalhos = array("Modo como decorreu", "Desempenho", "...");
$mq = array(45.0987, 78.96543, ...);
$dp = array(45.0987, 78.96543, ...);
<table id=geral>
<tr><th>Questão</th><th>Descrição</th><th>Média</th><th>Mediana</th><th>Desvio</th></tr>
for($i = 0, $i < ($numerototaldequestoes), $i++) {
?>
<tr>
	 <td><?php echo $i + 1?></td>
	 <td><?php echo $cabecalhos[$i]?></td>
	 <td><?php echo number_format($mq[$i], 3)</td>
	 <td><center><?php echo $mediana[$i]</center></td>
	 <td><center><?php echo number_format($dp[$i], 3)</center></td>
</tr>
<?php
}
?>
</table>
<br>

Editado por ICETuga

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
asom

São variaveis $mediana, $mq, e $dp individuais Icetuga, podes me ajudar. :(

É mais ou menos o que quero o que indicaste, na linha $dp = array(45,0987, 78,96543, ...); da-me um erro Parse error: syntax error, unexpected '.', expecting ')' in C:\wamp\www\resultados.php on line 84

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ICETuga

São variaveis $mediana, $mq, e $dp individuais Icetuga, podes me ajudar. :(

É mais ou menos o que quero o que indicaste, na linha $dp = array(45,0987, 78,96543, ...); da-me um erro Parse error: syntax error, unexpected '.', expecting ')' in C:\wamp\www\resultados.php on line 84

Pois dá. Primeiro eu enganei-me e onde está ,(virgula) a separar os decimais será .(ponto), e tens de substituir os ... pelos valores que queres, os 3 pontos era só para indicar que o array continuava.

Se são variáveis individuais eu transformaria primeiro num array....

Qualquer coisa como: $arraymq = array($mq1, $mq2, etc.);

Trabalhar num ciclo For com variáveis individuais será mais complicado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

não me digas que copiaste os '...' sem pensar na razão porque ele os escreveu !!!

(acho que vou tirar umas férias do fórum ...)

  • Voto 1

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Não apaguei e coloquei 1, 2. ou seja para dar por exemplo $dp1 e $dp2

podes dizer o que quiseres, mas não "insultes" a inteligência dos outros:

olha bem para a mensagem de erro:

Parse error: syntax error, unexpected '.', expecting ')' in C:\wamp\www\resultados.php on line 84 

ele disse que encontrou um ponto onde não deveria ser

agora olha para a linha de código:

$dp = array(45,0987, 78,96543, ...);

onde estão os pontos ? pois ...

-------

já que queres a papinha toda mastigada sendo então abrir a boca e enfiar pela traqueia abaixo:

$array = array();
$array[] = array('Questão', 'Descrição', 'Média', 'Mediana', 'Desvio'); // cabeçalho
$array[] = array(1, 'Modo como decorreu', number_format($mq1,3), $mediana1, number_format($dp1,3));
$array[] = array(2, 'Desempenho', number_format($mq2,3), $mediana2, number_format($dp2,3));
//...

$html = '<table>';
foreach ($array as $key => $record)
{
 $html .= '<tr>';
 foreach ($record as $column)
 {
   $html .= $key ? '<td>'.$column.'</td> : '<th>'.$column.'</th> ;
 }
 $html .= '</tr>';
}
$html .= '</table>';

echo $html;


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
asom

Boas Happy,

Agradeço na mesma mas já resolvi com algumas alterações no codigo do ice cheguei lá.

E como tens não é o que pretendo mas obrigado na mesma.

Porque não vejo vantagem colocar $array[] = array(2, 'Desempenho', number_format($mq2,3), $mediana2, number_format($dp2,3)); se precisar de 30 x tinha que colocar 30x $mq2, $mq3, $mq4 etc.

E não não quero a papa toda, porque o ice deu-me uma ajuda e consegui chegar ao que queria com algumas alterações.

Obrigado a todos.

Editado por asom

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

Porque não vejo vantagem colocar $array[] = array(2, 'Desempenho', number_format($mq2,3), $mediana2, number_format($dp2,3)); se precisar de 30 x tinha que colocar 30x $mq2, $mq3, $mq4 etc.

quando tiveres de alterar o código avisa ...


IRC : sim, é algo que ainda existe >> #p@p

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.