Próbuję zrozumieć, jak/dlaczego fetch_assoc działa tak, jak robi. że ma następujący fragment kodu:Zrozumieć fetch_assoc()
$results = $connectToDb->fetch("SELECT * FROM customer");
$resultsArray = $results->fetch_assoc();
print_r($resultsArray); //print_r 1
while($row = $results->fetch_assoc()){
print_r($row); //print_r 2
}
Zapytanie zwraca 3 wiersze z tabeli. Dlaczego 1. print_r zwraca tylko pierwszy wiersz zapytanych danych, ale drugi print_r zwraca wszystkie 3? W jaki sposób wprowadzenie fetch_assoc do pętli while nakazuje wykonanie tej akcji więcej niż raz? Czytałem, że fetch_assoc zwraca tablicę asocjacyjną lub NULL, ale staram się zrozumieć, w jaki sposób pętla while "mówi" fetch_assoc, aby pobrać kolejny wiersz, jeśli to ma sens?
Dziękuję.
Dlaczego wprowadzenie czegoś w pętlę powoduje, że coś się dzieje więcej niż raz? – Phylogenesis
Znaczenie instrukcji while jest proste. Informuje PHP, aby wielokrotnie wykonywał zagnieżdżone instrukcje, o ile wyrażenie while ma wartość TRUE. Wartość wyrażenia jest sprawdzana za każdym razem na początku pętli, więc nawet jeśli ta wartość zmieni się podczas wykonywania zagnieżdżonych instrukcji, wykonanie nie zostanie zatrzymane do końca iteracji (za każdym razem, gdy PHP uruchamia instrukcje w pętli jest jedna iteracja). Czasami, jeśli wyrażenie while zwraca wartość FALSE od samego początku, zagnieżdżone instrukcje nie będą nawet uruchamiane jeden raz. – Daan
http://php.net/manual/en/control-structures.while.php – RiggsFolly