컴퓨터관련
php mysql_result함수...펌
맘편한넘
2011. 2. 15. 23:07
MySQL 결과 집합으로부터 하나의 셀에 있는 데이터를 반환한다.
거대한 결과 집합으로 작업할 때, 행 전체를 인출하는 함수 중 하나를 사용할 것이다. 이들 함수는 하나의 함수 호출로 다중 셀의 데이터를 반환할 수 있어서 mysql_result()보다 더 빠르다. 또한, 필드 인수로 숫자 오프셋을 사용하는 것이 필드명 또는 테이블명.필드명 인수를 사용하는 것보다 더 빠르다.
인수
- result
-
mysql_query() 호출을 통한 결과 resource.
- row
-
검색된 결과에서 행번호. 행번호는 0부터 시작한다.
- field
-
검색을 위한 필드 오프셋 또는 이름. The name or offset of the field being retrieved.
필드 오프셋, 필드명 또는 테이블명.필드명(tablename.fieldname)으로 설정이 가능하다. 컬럼 이름이 별명(alias)이라면('select foo as bar from...'), 컬럼명 대신 별명을 사용한다. 정의하지 않으면 첫번째 필드를 검색한다.
예제
Example #1 mysql_result() 예제
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!$result) {
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() - 객체형으로 결과 행을 인출


DJK 06-Oct-2009 09: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 09: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 02-May-2008 12: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 07: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 12-Sep-2006 11: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 02: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 05: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);