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

mysql_fetch_array и цикъл while в php

Фундаментално не разбирате как работят тези неща.

„Масивът“ в mysql_fetch_array не е масив от всички записи, а масив от данни в текущия запис.

Във вашия случай извличате само едно поле, така че масивът ще съдържа само един елемент (т.е. $row[0] ), но принципът е същият -- това е масив от единичен запис, който току-що прочетохте.

Само данните за текущия запис са в масива във всеки един момент. Ето какво е while цикълът е за; връща се назад всички зарежда всеки запис един след друг.

Ако искате да създадете масив, който съдържа всички данни, трябва да го направите по следния начин:

$fullData = array()
while($row = mysql_fetch_array($tableIndex) ){
    $fullData[] = $row[0];
}

Това ще постави всички данни, които четете, в един голям масив, което очаквате. Сега можете да направите това, което сте искали във въпроса:

echo $fullData[0].'<br>';
echo $fullData[1].'<br>';
echo $fullData[2].'<br>';

Надявам се, че това помага.

Тук си струва да се отбележи, че mysql_xxx() фамилията от функции са остарели и се считат за остарели. Ако просто изучавате PHP (което изглежда е така), горещо ви препоръчвам да спрете да изучавате тези функции и да научите PDO библиотека вместо това. Той е по-модерен и има много функции от mysql функциите не могат да предоставят. Освен това бъдещите версии на PHP ще премахнат mysql функционира изцяло, така че ще трябва да превключите в даден момент -- може и сега, докато все още се учите.

Освен това (за да поддържа нещата подходящи за въпроса), PDO библиотеката има функция, която всъщност прави това, което търсите в една функция:PDO::fetchAll() . Използването на този метод означава, че виеможете извлича всички данни в един голям масив в един ред, без да е необходимо да правите цикъл while. Кодът би изглеждал донякъде така:

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll();

(пример взет от ръководството за PHP за PDO::fetchAll )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на % за хост при създаване на потребител на MySQL

  2. Напомняне за имейл в python

  3. Неуспешна заявка за актуализиране с грешка:1175

  4. Фатална грешка:Извикване на недефиниран метод mysqli_stmt::get_result()

  5. потвърдете възрастта, преди да регистрирате потребител, за да проверите дали е над определена възраст, като използвате mvc