mysql_fetch_assoc
]Podporované v PHP 4 >= 4.0.3, PHP 5, PECL mysql:1.0
PHP -> Funkcie -> MySQL funkcie PHP -> mysql_fetch_assoc
Syntax
array mysql_fetch_assoc ( resource $result )
Popis
Príkaz jazyka PHP
Funkcia vracia asociatívne pole hodnôt vráteného záznamu alebo FALSE, ak nie je žiadny ďalší záznam.
mysql_fetch_assoc je ekvivalentom k mysql_fetch_array s nepovinným druhým parametrom MYSQL_ASSOC, čo vracia len asociatívne pole. Ak potrebujete používať číselné indexy spolu s asociatívnym, použite mysql_fetch_array.
Ak dva alebo viac stĺpcov majú rovnaký názov, bude dostupná hodnota len toho posledného. Ak chcete pristupovať i k hodnotám ostatných stĺpcov, musíte k nim v sql dotazu vytvoriť aliasy. Názov kľúča stĺpca, ku ktorému je výtvorom alias, je vždy meno aliasu a preto nie je možné použiť originálne meno stĺpca v sql tabuľke. Pozrite sa na vysvetlenie používania aliasov v príklade u mysql_fetch_array.
Dôležité však je, že použitie mysql_fetch_assoc nie je nijako výrazne pomalšie ako použitie mysql_fetch_row, ak je jej použitie pridanou hodnotou.
Príklad
<?php
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "Nelze se spojit s DB: " . mysql_error();
exit;
}
if (!mysql_select_db("mydbname")) {
echo "Nelze vybrat mydbname: " . mysql_error();
exit;
}
$sql = "SELECT id as userid, fullname, userstatus
FROM sometable
WHERE userstatus = 1";
$result = mysql_query($sql);
if (!$result) {
echo "Zpracování dotazu nebylo úspěšné ($sql) na DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "Nenalezeny žádné řádky, nic k zobrazení, takže končím.";
exit;
}
// Pokud nějaké záznamy dat existují, vlozží každý záznam do asociativního pole $row.
// Tip: Očekáváte-li pouze jeden záznam, můžete vynechat smyčku.
// Tip: Přidáte-li do následující smyčky extract($row);, vytvoří se rovnou proměnné $userid, $fullname a $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
mysql_free_result($result);
?>
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "Nelze se spojit s DB: " . mysql_error();
exit;
}
if (!mysql_select_db("mydbname")) {
echo "Nelze vybrat mydbname: " . mysql_error();
exit;
}
$sql = "SELECT id as userid, fullname, userstatus
FROM sometable
WHERE userstatus = 1";
$result = mysql_query($sql);
if (!$result) {
echo "Zpracování dotazu nebylo úspěšné ($sql) na DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "Nenalezeny žádné řádky, nic k zobrazení, takže končím.";
exit;
}
// Pokud nějaké záznamy dat existují, vlozží každý záznam do asociativního pole $row.
// Tip: Očekáváte-li pouze jeden záznam, můžete vynechat smyčku.
// Tip: Přidáte-li do následující smyčky extract($row);, vytvoří se rovnou proměnné $userid, $fullname a $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
mysql_free_result($result);
?>
Pozri aj
mysql_fetch_row, mysql_fetch_array, mysql_query, mysql_error
]