//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
mysql_result
(PHP 4, PHP 5, PECL mysql:1.0)
mysql_result — Retourne un champ d'un résultat MySQL
Description
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());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!$result) {
die('Impossible d\'exécuter la requête :' . mysql_error());
}
echo mysql_result($result, 2); // 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.
mysql_result
01-May-2008 05:54
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
?>
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");
?>
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!";
}
}
?>
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);
