Mysql
 sql >> Database >  >> RDS >> Mysql

PHP:perché non posso eseguire il loop due volte sui risultati di mysqli_fetch_array()?

Da mysqli_fetch_array di PHP DOCS :

Stai usando un ciclo 'while' su $row = mysqli_fetch_array($newsQuery)

Ciò significa che il ciclo continuerà fino a mysqli_fetch_array($newsQuery) restituisce NULL .

Questo è il motivo per cui non puoi usa di nuovo quel ciclo, poiché mysqli ha finito di recuperare i risultati e il mysqli_fetch_array($newsQuery) ora restituisce NULL finché non esegui una nuova query.

Prova prima a popolare una variabile con i risultati, quindi esegui il ciclo su quella variabile:

$results = array();
while ($row = mysqli_fetch_array($newsQuery)) {
     $results[] = $row;
}

foreach ($results as $key => $row) {
    echo "<a href='news-article.php?articleId=" .$row["news_id"]."' class='list-group-item active'>".$row["news_title"]."</a>";
}


foreach ($results as $key => $row) {
    echo $row["news_content"];
}