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

while ($row =mysql_fetch_array($result)) - hvor mange loops udføres?

Nej. mysql_fetch_array returnerer bare den næste række af resultatet og flytter den interne markør frem. Den sløjfer ikke. (Internt bruger den måske en eller anden løkke et eller andet sted, men det er irrelevant.)

while ($row = mysql_fetch_array($result)) {
   ...
}

Dette gør følgende:

  1. mysql_fetch_array henter og returnerer den næste række
  2. rækken er tildelt $row
  3. udtrykket evalueres, og hvis det evalueres til true , udføres løkkens indhold
  4. proceduren begynder igen

Dette gør følgende:

  1. mysql_fetch_array henter og returnerer den næste række
  2. rækken er tildelt $row
  3. foreach sløjfer over indholdet af arrayet og udfører løkkens indhold lige så mange gange, som der er elementer i arrayet

I begge tilfælde mysql_fetch_array gør præcis det samme. Du har kun så mange loops, som du skriver. Begge konstruktioner gør dog ikke det samme. Den anden vil kun virke på én række af resultatet, mens den første vil løkke over alle rækker.



  1. Udskriv den faktiske forespørgsel, MySQLdb kører?

  2. Hvordan kopierer man en række og indsætter i samme tabel med et autoincrement-felt i MySQL?

  3. ALTER TABLE-sætningen var i konflikt med CHECK-begrænsningen i SQL Server - SQL Server / TSQL Selvstudium, del 89

  4. Valg af rækker ordnet efter en kolonne og adskilt i en anden