mysql_result

(PHP 4, PHP 5)

mysql_resultZwraca dane wynikowe

Opis

mysql_result ( resource $wynik , int $wiersz [, mixed $ pole ] ) : mixed

mysql_result() zwraca zawartość jednej komórki z wyniku. Jako argument pole można podać ofset, nazwę pola lub nazwę tabeli z nazwą pola (tabela.pole). Jeżeli nazwa kolumny została zastąpiona synonimem ('select foo as bar from...'), należy użyć tej nazwy zamiast rzeczywistej.

Przy pracy z dużymi wynikami, powinno się rozważyć użycie jednej z funkcji pobierających cały wiersz (patrz niżej). Jako, że funkcje te zwracają zawartość kilku komórek w jednym wywołaniu, są one ZNACZNIE szybsze niż mysql_result(). Podanie przesunięcia (offset) w argumencie pole jest znacznie szybsze niż podanie nazwy pola lub konstrukcji tabela.pole.

Wywołania mysql_result() nie powinny być mieszane z wywołaniami innych funkcji operujących na wyniku.

Zalecane wydajniejsze alternatywy: mysql_fetch_row(), mysql_fetch_array() i mysql_fetch_object().

add a note add a note

User Contributed Notes 6 notes

up
12
freedman at FreeFormIT dot com
5 years ago
here's a rough replacement using mysqli:

if (!function_exists('mysql_result')) {
    function mysql_result($result, $number, $field=0) {
        mysqli_data_seek($result, $number);
        $row = mysqli_fetch_array($result);
        return $row[$field];
    }
}
up
-5
adam dot chou at gmail dot com
11 years ago
mysql_result() will throw E_WARNING if mysql_query returns 0 rows. This is unlike any of the mysql_fetch_* functions so be careful of this if you have E_WARNING turned on in error_reporting(). You might want to check mysql_num_rows() before calling mysql_result()
up
-4
v dot teemu at gmail dot com
3 years ago
I was also looking for mysqli replacement for getting first row, when query is known to return just 1 value. It seems this is simple:

echo(mysql_result($result, 0));

becomes

echo($result->fetch_row()[0]);

alternatively

if ($row = $result->fetch_row()) {
  echo($row[0]);
}
up
-7
harmmeiier at gmail dot com
6 years ago
An example of how to easily port this to mysqli would be nice instead of some links to functions that don't really do what this function does.
up
-19
raz0 at NOSPAM dot worldonline dot dk
16 years ago
If you want to fetch the result from a mysql query similar to one of these two queries...

$query = mysql_query("SELECT COUNT(*) FROM table");
$query = mysql_query("SELECT LAST_INSERT_ID()");

... you would use mysql_result() like shown below to retrieve the output as an int.

$result = mysql_result($query, 0, 0);
up
-20
bruce at kaskubar dot com
9 years ago
The warning against mixing the use of mysql_result with other result set functions is a bit generic. More specifically, mysql_result alters the result set's internal row pointer (at least in a LAMP environment). This is anything but obvious as the nature of the function is random access for grabbing a quick byte. Using mysql_data_seek after some mysql_result calls, before going into a mysql_fetch_array loop, will set things straight.
To Top