downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

mysql_select_db> <mysql_real_escape_string
[edit] Last updated: Fri, 17 May 2013

view this page in

mysql_result

(PHP 4, PHP 5)

mysql_resultВозвращает данные результата запроса

Описание

string mysql_result ( resource $result , int $row [, mixed $field = 0 ] )

Возвращает содержимое одного поля из набора результата MySQL.

Работая с большими результатами запросов, следует использовать одну из функций, обрабатывающих сразу целый ряд результата (указаны ниже). Так как эти функции возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее mysql_result(). Кроме того, учтите, что указание численного смещения работает намного быстрее, чем указание колонки, или колонки с таблицей через точку.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

row

Номер получаемого ряда из результата. Нумерация рядов начинается с 0.

field

Имя или смещение получаемого поля.

Может быть как смещением поля, именем поля, так и именем поля вместе с таблицей (таблица.поле). Если для поля был указан псевдоним ('select foo as bar from...'), используйте его вместо имени самого поля. Если не указан, возвращается первое поле.

Возвращаемые значения

Содержимое одного поля из набора результата MySQL в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysql_result()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Ошибка соединения: ' mysql_error());
}
if (!
mysql_select_db('database_name')) {
    die(
'Ошибка выбора базы данных: ' mysql_error());
}
$result mysql_query('SELECT name FROM work.employee');
if (!
$result) {
    die(
'Ошибка выполнения запроса:' mysql_error());
}
echo 
mysql_result($result2); // выведет имя третьего сотрудника

mysql_close($link);
?>

Примечания

Замечание:

Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.

Смотрите также

  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект



mysql_select_db> <mysql_real_escape_string
[edit] Last updated: Fri, 17 May 2013
 
add a note add a note User Contributed Notes mysql_result - [8 notes]
up
2
bruce at kaskubar dot com
2 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.
up
1
adam dot chou at gmail dot com
4 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
0
DJK
3 years ago
Note that mysql_result affects the internal pointer used by mysql_fetch_*

<?php
$res
= mysql_query('SELECT a,b FROM ab');
echo
mysql_result($res,0,0);
print_r(mysql_fetch_assoc($res));
?>

In the above example, the call to mysql_fetch_assoc would return the SECOND result, not the first as (I) expected.

Use mysql_data_seek($res,0) to reset the result set.
up
0
djurredenboer at hotmail dot com
6 years ago
<?
$link
= mysql_connect("host", "user", "passw");
mysql_select_db("database", $link);
$number = 3;
$insert = mysql_query("SELECT `test1`.*, `test2`.*,
FROM `test1`, `test2`, `
WHERE ((`test1`.`author` = `test2`.`ID`) AND (`test2`.`ID` ='
$number'))
ORDER BY `toetsen`.`autoID` DESC"
,$link);

 
 
 
 echo
mysql_result( $insert , 0, 'test1.question') ;

#here he echoes the questions the stuff out of the first table
 
echo mysql_result( $insert , 0, 'test2.name') ;

#here he echoes the questions the stuff out of the second table
?>
up
0
raz0 at NOSPAM dot worldonline dot dk
9 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
-1
erelsgl dot NOSPAM at cs dot technion dot ac dot il
6 years ago
two simple but very useful functions, for converting a query to a value or an array:

<?php
function mysql_evaluate($query, $default_value="undefined") {
   
$result = mysql_query($query);
    if (
mysql_num_rows($result)==0)
        return
$default_value;
    else
        return
mysql_result($result,0);
}

function
mysql_evaluate_array($query) {
   
$result = mysql_query($query);
   
$values = array();
    for (
$i=0; $i<mysql_num_rows($result); ++$i)
       
array_push($values, mysql_result($result,$i));
    return
$values;
}
?>

http://tora.us.fm/_script/highlight.php?file=sql

Usage examples:

<?php
 $customer_count
= mysql_evaluate("SELECT COUNT(*) FROM customers");
 
$customer_names = mysql_evaluate_array("SELECT name FROM customers");

$customer_type = mysql_evaluate("SELECT type FROM customers WHERE name='$name'", "DEFAULT_TYPE");
?>
up
-3
kg6ypi at remotehams dot com
5 years ago
//updated error handling for mysql_evaluate

function mysql_evaluate($query, $default_value=0) {

    if (!$result=mysql_query($query)) {
        return 0;
    }
   
    if (mysql_num_rows($result)==0)
        return $default_value;
    else
        return mysql_result($result,0);
}

// same applies for the mysql_evaluate_array() function
up
-2
gack at bar dot foo
6 years ago
if you want to do something based on the fact that the data is the same in the next row, then looking ahead is easy with this.

<?php
$i
=0;
$rows=mysql_num_rows($result);
while(
$i < $rows) {
 
$x = mysql_result($result, $i, 0);
 if (
$x = mysql_result($result, $i+1, 0)) {
  echo
"It's the same thing!";
 }
}
?>

 
show source | credits | sitemap | contact | advertising | mirror sites