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, 19 Oct 2012

view this page in

mysql_result

(PHP 4, PHP 5)

mysql_resultGet result data

Description

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

Retrieves the contents of one cell from a MySQL result set.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than mysql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Parameters

result

The result resource that is being evaluated. This result comes from a call to mysql_query().

row

The row number from the result that's being retrieved. Row numbers start at 0.

field

The name or offset of the field being retrieved.

It can be the field's offset, the field's name, or the field's table dot field name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name. If undefined, the first field is retrieved.

Return Values

The contents of one cell from a MySQL result set on success, or FALSE on failure.

Examples

Example #1 mysql_result() example

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Could not connect: ' mysql_error());
}
if (!
mysql_select_db('database_name')) {
    die(
'Could not select database: ' mysql_error());
}
$result mysql_query('SELECT name FROM work.employee');
if (!
$result) {
    die(
'Could not query:' mysql_error());
}
echo 
mysql_result($result2); // outputs third employee's name

mysql_close($link);
?>

Notes

Note:

Calls to mysql_result() should not be mixed with calls to other functions that deal with the result set.

See Also



mysql_select_db> <mysql_real_escape_string
[edit] Last updated: Fri, 19 Oct 2012
 
add a note add a note User Contributed Notes mysql_result
bruce at kaskubar dot com 28-Apr-2011 11:30
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.
DJK 06-Oct-2009 07:00
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.
adam dot chou at gmail dot com 06-Oct-2008 07:49
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()
kg6ypi at remotehams dot com 01-May-2008 10:54
//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
djurredenboer at hotmail dot com 11-May-2007 05:08
<?
$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
?>
erelsgl dot NOSPAM at cs dot technion dot ac dot il 11-Sep-2006 09:18
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");
?>
gack at bar dot foo 18-Jul-2006 12:42
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!";
 }
}
?>
raz0 at NOSPAM dot worldonline dot dk 23-Aug-2003 03:42
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);

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