Mysql
 sql >> база данни >  >> RDS >> Mysql

while ($row =mysql_fetch_array($result)) - колко цикъла се изпълняват?

Не. mysql_fetch_array просто връща следващия ред от резултата и придвижва напред вътрешния показалец. Не се зациклява. (Вътрешно може да използва или не може да използва някакъв цикъл някъде, но това е без значение.)

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

Това прави следното:

  1. mysql_fetch_array извлича и връща следващия ред
  2. редът е присвоен на $row
  3. изразът се оценява и ако се оценява на true , съдържанието на цикъла се изпълнява
  4. процедурата започва отначало

Това прави следното:

  1. mysql_fetch_array извлича и връща следващия ред
  2. редът е присвоен на $row
  3. foreach обикаля съдържанието на масива и изпълнява съдържанието на цикъла толкова пъти, колкото има елементи в масива

И в двата случая mysql_fetch_array прави абсолютно същото нещо. Имате само толкова цикли, колкото пишете. И двете конструкции обаче не правят едно и също нещо. Вторият ще действа само върху един ред от резултата, докато първият ще обикаля всички редове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Екраниране на имена на колони в PDO изрази

  2. Множество вътрешни съединения с множество таблици

  3. Обща сума на няколко MySQL колони, съхранени в друга колона?

  4. Изключение:Вече има отворен DataReader, свързан с тази връзка, който първо трябва да бъде затворен

  5. Изпълняване на mySQL заявка като cron работа?