Ao trabalhar com bancos de dados usando PHP e MySQL, você pode encontrar uma situação em que precisa acessar os mesmos resultados de consulta mais de uma vez usando a função mysqli_fetch_array(). No entanto, tentar usar mysqli_fetch_array() no mesmo conjunto de resultados várias vezes resultará em uma saída vazia.
Isso ocorre porque mysqli_fetch_array() busca e avança o ponteiro no conjunto de resultados. Assim, se você tentar buscar o mesmo resultado novamente, não haverá mais dados para recuperar.
Para resolver esse problema, você deve separar a manipulação de dados da saída. Primeiro, busque todos os dados do banco de dados e armazene-os em um array:
$db_res = mysqli_query($db_link, $sql);
$data = [];
while ($row = mysqli_fetch_assoc($db_res)) {
$data[] = $row;
}
Nota: Desde o PHP 5.3, você pode usar fetch_all() em vez do loop explícito:
$db_res = mysqli_query($db_link, $sql);
$data = $db_res->fetch_all(MYSQLI_ASSOC);
Depois de armazenar os dados em um array, você pode iterá-los quantas vezes forem necessárias:
Linha superior :
foreach ($data as $row) {
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3