mysql_result

(PHP 3, PHP 4, PHP 5)

mysql_result -- 取得结果数据

说明

mixed mysql_result ( resource result, int row [, mixed field] )

mysql_result() 返回 MySQL 结果集中一个单元的内容。字段参数可以是字段的偏移量或者字段名,或者是字段表点字段名(tablename.fieldname)。如果给列起了别名('select foo as bar from...'),则用别名替代列名。

当作用于很大的结果集时,应该考虑使用能够取得整行的函数(在下边指出)。这些函数在一次函数调用中返回了多个单元的内容,比 mysql_result() 快得多。此外注意在字段参数中指定数字偏移量比指定字段名或者 tablename.fieldname 要快得多。

调用 mysql_result() 不能和其它处理结果集的函数混合调用。

例子 1. mysql_result() 例子

<?php
    $link
= mysql_connect("localhost", "mysql_user", "mysql_password")
            or die(
"Could not connect: " . mysql_error());

    
$result = mysql_query("SELECT name FROM work.employee")
            or die(
"Could not query: . mysql_error());

    echo mysql_result($result,2); // outputs third employee's name

    mysql_close($link);
?>

推荐使用高性能的替代函数:mysql_fetch_row()mysql_fetch_array()mysql_fetch_assoc()mysql_fetch_object()


add a note add a note User Contributed Notes
erelsgl dot NOSPAM at cs dot technion dot ac dot il
12-Sep-2006 07: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 10: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
24-Aug-2003 01: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);