Ir para conteúdo
Fórum Script Brasil
  • 0

Ordenar dados pegos de um form em PHP


Gr3mist@

Pergunta

Pessoal, eu tenho um formulário em PHP funcionando assim:

<?php for($a = 1; $a<=40; $a++) { ?>
    <input name='aluno<?php echo $a ?>' type='text' value='<?php $a; ?>' >
            <br>
            <?php } ?>
Aí pra passar os dados pra outra página eu fiz assim:
for ($a = 1; $a<=40; $a++) {

echo $_POST["aluno$a"];
Bom, assim está funcionando ok, só que a variável $a pega nomes de alunos e exibe na página, mas eu preciso que esses nomes sejam exibidos em ordem alfabética. Vi que tem que usar a função sort em um array, aí fiz o seguinte:
$a = array();
sort ($a); 
for ($a = 1; $a<=40; $a++) {

echo $_POST["aluno$a"];

Só que nada acontece, ele continua exibindo os nomes na ordem dos campos.

Gostaria de saber o que estou fazendo errado, creio que seja o array, mas não consegui fazer de outra forma.

Alguém pode me dar uma luz, por favor?

Muito obrigado!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Dentro do for você vai ter que criar um novo array, depois ordenar esse novo array com o sort...

$aluno = array();
for ($a = 1; $a<=40; $a++) {

$aluno[] = $_POST["aluno$a"];
Certo, então ficaria assim?
$aluno = array();
for ($a = 1; $a<=40; $a++) {
$aluno[] = $_POST["aluno$a"];
sort ($aluno);
echo $_POST["aluno$a"];

Mas desse jeito ele continua mostrando na ordem dos campos..aí se eu faço echo "$a", ele mostra os números, se faço echo "$aluno" ele mostra tudo "Array"..já testei com todos e nenhum dá certo. :(

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu ESerra!

Mas ainda tenho outro problema galera. Ele tá ordenando os nomes ok, mas eu tenho que ordenar junto o desempenho dos alunos. Bom, a lógica é que eu tenho que criar um vetor cujos índices são os nomes e as notas são os valores e após criar este vetor, eu tenho que mandar ordenar pelos índices. Mas não estou conseguindo implementar isso corretamente no PHP.

O código da minha 2ª página está assim:

$aluno = array($_POST["aluno"] => $_POST["nota"]);
for ($i=1; $i<=10; $i++) {
$aluno[] = $_POST["aluno$i"];
}

asort($aluno);

foreach($aluno as $a=>$nome) {
echo "<BR>Nome: ", $nome, " - Desempenho = "; 
}

if($_POST["nota$i"] == 10)
    echo "Excelente<BR>";
else if ($_POST["nota$i"] >=8)
    echo "Muito Bom<BR>";
else if ($_POST["nota$i"] >=7)
    echo "Bom<BR>";
else if ($_POST["nota$i"] >=5)
    echo "Medíocre<BR>";                        
else if ($_POST["nota$a"] >=3)
    echo "Péssimo<BR>";                        
else if ($_POST["nota$i"] >= 1)
    echo "Horrível<BR>";
else if($_POST["nota$i"] < 1)
        echo "O Suicídio É Um Dever<BR>";

?>

Me enrolei legal nessa parte e não consigo acertar, me baseei em alguns exemplos mas não tá saindo. Alguém pode dar mais um help por favor?!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...