Last 5.3 release ever available: PHP 5.3.29 - 5.3 now EOL

mysql_result

(PHP 4, PHP 5)

mysql_resultRetourne un champ d'un résultat MySQL

Avertissement

Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. Voir aussi le guide MySQL : choix de l'API ainsi que la FAQ associée pour plus d'information. Voici les alternatives à cette fonction :

Description

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

Retourne le contenu d'un champ d'un jeu de résultats MySQL.

Lorsque vous travaillez sur des résultats de grande taille, il est conseillé d'utiliser une des fonctions qui vont rechercher une ligne entière dans un tableau. Ces fonctions sont NETTEMENT plus rapides. De plus, utiliser un offset numérique est aussi beaucoup plus rapide que spécifier un nom littéral.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

row

Le numéro de la ligne à récupérer. Les numéros de lignes commencent à 0.

field

Le nom ou la position du champ à récupérer.

Il peut être la position du champ, le nom du champ ou le nom de la table suivi d'un point, suivi du nom du champ (tablename.fieldname). Si un alias a été utilisé pour le nom de la colonne ("selected foo as bar from..."), utilisez plutôt l'alias. Si ce paramètre n'est pas défini, le premier champ sera récupéré.

Valeurs de retour

Le contenu d'un champ depuis un jeu de résultats MySQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec mysql_result()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
   die(
'Impossible de se connecter : ' mysql_error());
}
if (!
mysql_select_db('database_name')) {
    die(
'Impossible de sélectionner la table : ' mysql_error());
}
$result mysql_query('SELECT name FROM work.employee');
if (!
$result) {
   die(
'Impossible d\'exécuter la requête :' mysql_error());
}
echo 
mysql_result($result2); // Affiche le nom du troisième employé

mysql_close($link);
?>

Notes

Note:

Les appels mysql_result() ne devraient pas être mélangés avec d'autres fonctions qui travaillent aussi sur le résultat.

Voir aussi

  • mysql_fetch_row() - Retourne une ligne de résultat MySQL sous la forme d'un tableau
  • mysql_fetch_array() - Retourne une ligne de résultat MySQL sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
  • mysql_fetch_assoc() - Lit une ligne de résultat MySQL dans un tableau associatif
  • mysql_fetch_object() - Retourne une ligne de résultat MySQL sous la forme d'un objet

add a note add a note

User Contributed Notes 7 notes

up
6
djurredenboer at hotmail dot com
7 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
4
adam dot chou at gmail dot com
5 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
4
raz0 at NOSPAM dot worldonline dot dk
10 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
harmmeiier at gmail dot com
2 months ago
An example of how to easily port this to mysqli would be nice instead of some links to functions that don't really do what this function does.
up
0
bruce at kaskubar dot com
3 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
0
DJK
4 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
-3
erelsgl dot NOSPAM at cs dot technion dot ac dot il
7 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");
?>
To Top