sql >> Databáze >  >> RDS >> Mysql

mysql_fetch_array a smyčka while v php

Zásadně nechápete, jak tyto věci fungují.

"Pole" v mysql_fetch_array není pole všech záznamů, ale pole dat v aktuálním záznamu.

Ve vašem případě načítáte pouze jedno pole, takže pole bude obsahovat pouze jeden prvek (tj. $row[0] ), ale princip je stejný – je to pole jednoho záznamu, který jste právě přečetli.

V poli jsou v každém okamžiku pouze data pro aktuální záznam. To je to, co while smyčka je pro; vrací zpět všechna načtení každého záznamu jeden po druhém.

Pokud chcete vytvořit pole, které obsahuje všechna data, musíte to udělat takto:

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

To dá všechna data, která čtete, do jednoho velkého pole, což je to, co očekáváte. Nyní můžete udělat to, co jste chtěli udělat v otázce:

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

Doufám, že to pomůže.

Zde stojí za to zdůraznit, že mysql_xxx() rodina funkcí jsou zastaralé a považovány za zastaralé. Pokud se teprve učíte PHP (což se zdá být ten případ), důrazně doporučuji, abyste se přestali učit tyto funkce a naučili se PDO místo toho knihovna. Je modernější a má spoustu funkcí než mysql funkce nemohou poskytnout. Kromě toho budoucí verze PHP odstraní mysql funguje úplně, takže budete muset v určitém okamžiku přepnout - může to být i nyní, když se stále učíte.

Knihovna PDO má také (abychom udrželi věci relevantní k otázce) funkci, která ve skutečnosti dělá to, co hledáte, v jediné funkci:PDO::fetchAll() . Použití této metody znamená, že můžete načíst všechna data do jednoho velkého pole na jednom řádku bez nutnosti dělat smyčku while. Kód by vypadal trochu takto:

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

(příklad převzat z manuálu PHP pro PDO::fetchAll )



  1. Získejte hodnoty z prvního a posledního řádku na skupinu

  2. sqlalchemy, nastavení znakové sady MySQL jako argumentu `create_engine`

  3. Začínáme s autonomní databází Oracle v cloudu

  4. O pglogickém výkonu