Jump to content
asom

Arrays e ciclos

Recommended Posts

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. :(

Edited by brunoais
geshi

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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>

Edited by ICETuga

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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 ...)

  • Vote 1

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Edited by asom

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.