|
|
mysql_result (PHP 3, PHP 4, PHP 5) mysql_result -- Возвращает данные результата запроса Описаниеmixed mysql_result ( resource result, int row [, mixed field] )
mysql_result() возвращает значение одной ячейки
результата запроса. Аргументом поля может быть смещение, имя поля, или
имя поля и имя таблицы через точку (tablename.fieldname). Если к имени колонки, в
запросе, был использован алиас ('select foo as bar from...'), используйте
его вместо реального имени колонки.
Работая с большими результатами запросов, следует использовать одну из
функций, обрабатывающих сразу целый ряд результата. Так как эти функции
возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее
mysql_result(). Кроме того учтите, что указание
численного смещения работает намного быстрее, чем указание колонки, или
колонки и таблицы через точку.
Вызовы функции 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().
djurredenboer at hotmail dot com
11-May-2007 12: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 04: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 07: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 10: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);
|