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

Notice: Undefined variable: array e Warning: Invalid argument supplied for foreach()


Uahaho

Pergunta

Olá, sou novata com php e estava desenvolvendo uma atividade para a faculdade. Acreditava que o algoritmo estava correto porém quando rodado no servidor ele retorna dois "erros".

<html>
    <body>
        <form method="get">
            <p> Informe o 01º nome: <input type="text" name="nome1" required="required" /> </p>
            <p> Informe a 01º idade: <input type="text" name="idade1" required="required" pattern="[0-9]+$" /> </p>
            <p> Informe o 02º nome: <input type="text" name="nome2" required="required"  /> </p>
            <p> Informe a 02º idade: <input type="text" name="idade2" required="required" pattern="[0-9]+$" /> </p>
            <p> Informe o 03º nome: <input type="text" name="nome3" required="required"  /> </p>
            <p> Informe a 03º idade: <input type="text" name="idade3" required="required" pattern="[0-9]+$" /> </p>
            <p><input type="submit" /></p>
        </form>
        <?php
            if(isset($_GET['nome1']) && isset($_GET['idade1']) && isset($_GET['nome2']) && isset($_GET['idade2']) && isset($_GET['nome3']) && isset($_GET['idade3'])){
                
                $array[0] = array('nome' => $_GET['nome1'], 'idade' => $_GET['idade1']);
                $array[1] = array('nome' => $_GET['nome2'], 'idade' => $_GET['idade2']);
                $array[2] = array('nome' => $_GET['nome3'], 'idade' => $_GET['idade3']);

                foreach ($array as $key => $row) {
                    $nome[$key]  = $row['nome'];
                    $idade[$key] = $row['idade'];
                }

                array_multisort($nome, SORT_DESC, $idade, SORT_ASC, $array);
            }
        ?>
        <table border="1px">
            <?php foreach($array as $key) { ?>
                <tr>
                    <th><?php echo $nome[$key]; ?></th>
                    <td><?php echo $idade[$key]; ?></td>
                </tr>
            <?php } ?>
        </table>
    </body>
</html>

O objetivo era receber os dados e os ordenar pela idade apresentando em uma table. Alguém tem alguma ideia?

Editado por Uahaho
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

O programa tinha que ser dividido em dois blocos, mas acabou ficando com 3 blocos, o terceiro bloco tinha que estar no segundo bloco. Eu prefiro parar a execução no primeiro bloco.

Outro erro que encontrei foi nessa linha:

foreach($array as key)(echo $nome[$key] etc... o correto é $key['nome'].

Mas o código é bom, eu aprendi a usar <input pattern> bem como ordenar um array. Aqui está o código, modificado:

<body style="width:50%;margin:0 auto"><div style=height:5%></div>
<form method="get">
    <table><th>Informe Nome e<th>Idade
    <tr><td><input name=nome[] required>
        <td><input name=idade[] required pattern=[0-9]+$ size=1>
    <tr><td><input name=nome[] required>
        <td><input name=idade[] required pattern=[0-9]+$ size=1>
    <tr><td><input name=nome[] required>
        <td><input name=idade[] required pattern=[0-9]+$ size=1>
    <tr><td><input type=submit></table>
</form>
<?php
if(!isset($_GET['nome'])){exit;}
$array[0] = array('nome' => $_GET['nome'][0], 'idade' => $_GET['idade'][0]);
$array[1] = array('nome' => $_GET['nome'][1], 'idade' => $_GET['idade'][1]);
$array[2] = array('nome' => $_GET['nome'][2], 'idade' => $_GET['idade'][2]);
var_dump($array);
foreach ($array as $key => $value) {
    $nome[$key]  = $value['nome'];
    $idade[$key] = $value['idade'];}
array_multisort($nome, SORT_DESC, $idade, SORT_ASC, $array);
echo "<table border=1px>";
foreach($array as $key) {
    echo "<tr><th>".$key['nome'];
    echo "<td>".$key['idade'];}
echo "</table>";

 

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...