Jump to content
netocazuza

[Resolvido] listar dados numa combobox

Recommended Posts

Estou seguindo uma video aula de php com mysql e estou conseguindo listar os dados de uma tabela em uma lista (list), só pra que saibam que o problema de conexão com o banco já está superado. Tentei aproveitar o mesmo código para listar a mesma tabela numa combobox, e não tá preenchendo. Aparece a combo, mas não preenche com os dados. Alguém sabe onde estou errando? Segue código:

<body>
        <ul>
            <?php
                // Passo 4 - Listagem dos dados
                while($registro = mysqli_fetch_assoc($categorias)){
            ?>
                    <li><?php echo $registro ["nomecategoria"]?></li>
            <?php
                }
            
            ?>
        </ul>
        <form name="produto" method="post" action="">
             <label for="">Selecione um produto</label>
             <select>
             <option>Selecione...</option>
             
             <?php 
             while($registro = mysqli_fetch_assoc($categorias)) { ?>
             <option = "<?php echo $registro['categoriaID'] ?>"><?php echo $registro["nomecategoria"] ?></option>
             <?php } ?>
             
             </select>
        </form>
                    <?php
            //Passo 5 - Liberar dados da memória
            mysqli_free_result($categorias);
        ?>
    </body>

 

Share this post


Link to post
Share on other sites

Uma vez que você já percorreu o resultado de uma consulta (mysqli_result), ele não pode ser percorrido novamente. O que você deve fazer é salvar os dados em uma variável e percorrer o resultado nesta variável.

//funciona apenas com o driver Mysql Native Driver (mysqlnd)
$registros = mysqli_fetch_all($categorias);

foreach($registros as $registro)
{
}

MysqlND: http://php.net/manual/en/mysqli-result.fetch-all.php#refsect1-mysqli-result.fetch-all-mysqlnd

 

Caso não possua instalado o mysqlnd (é recomendado que tenha), deve iterar uma vez e salvar o resultado:

while($registro = mysqli_fetch_assoc($categorias)) {
    $registros[] = $registro;
}

 

Share this post


Link to post
Share on other sites

Verdade Gabriel. Obrigado pela dica. Como eu só precisava mostrar os dados em um, ou outro, exclui o list, e começou a listar na combobox. Tá ok agora.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Joob
      Boas Malta,
       
      Não sei porquê que não estou a conseguir remover os ficheiros após minutos..
      Por exemplo ele vai buscar o delete_expired_shared_links e apaga a partilha feita após o tempo colocado, mas no delete_old_zips já não apaga.
      Supostamente ele vai buscar os ficheiros da pasta zip e deveria apagar.
       
      protected function schedule(Schedule $schedule) { $schedule->call(function () { $this->delete_expired_shared_links(); })->everyMinute(); $schedule->call(function () { $this->delete_old_zips(); })->everyFiveMinutes(); // Run queue jobs every minute $schedule->command('queue:work --stop-when-empty') ->everyMinute() ->withoutOverlapping(); } protected function delete_old_zips(): void { $zips = Zip::where('created_at', '<=', Carbon::now()->subDay()->toDateTimeString())->get(); $zips->each(function ($zip) { \Storage::disk('local')->delete('zip/' . $zip->basename); $zip->delete(); }); } protected function delete_expired_shared_links(): void { $shares = Share::whereNotNull('expire_in')->get(); $shares->each(function ($share) { $created_at = Carbon::parse($share->created_at); if ($created_at->diffInHours(Carbon::now()) >= $share->expire_in) { $share->delete(); } }); } }  
      Obrigado :)
    • By clayton.lima2020
      Boa Tarde!
       
      Pessoal estou com um problema para resolver:
       
      Tenho um uma string que é um Nome:  SYLVIA
       
      Eu preciso fazer uma uma busca nessa string achar a letra Y e depois verificar se após a letra Y a próxima letra é Vogal ou Consoante.
       
      No caso do nome SYLVIA a próxima letra é L então retorna Consoante.
       
      Alguém sabe montar esse algoritmo ai?
    • By Duilio Gomes Pereira
      Tenho um banco de dados com mais de 21 mil usuários do wordpress. Como faço para deletar os usuário no  Phpmyadmin e deixar apenas 2 usuários?
       
      Pois só preciso de 2 usuários neste site.
       
      Obrigado!
    • By Duilio Gomes Pereira
      Olá!
      Tenho um bando de dados com mais de 21 mil usuários do wordpress. Como faço para deletar no Phpmyadmin e deixar apenas 2 usuários?
      Obrigado!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.