downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

mysql_field_flags> <mysql_fetch_object
[edit] Last updated: Mon, 20 May 2013

view this page in

mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_rowRetourne une ligne de résultat MySQL sous la forme d'un tableau

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

array mysql_fetch_row ( resource $result )

mysql_fetch_row() retourne un tableau indexé numériquement, qui correspond à la prochaine ligne du résultat MySQL result et déplace le pointeur interne de données d'un cran.

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().

Valeurs de retour

Retourne un tableau numérique de chaînes qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

mysql_fetch_row() va rechercher une ligne dans le résultat associé à l'identifiant de résultat spécifié. La ligne est retournée sous la forme d'un tableau. Chaque colonne est enregistrée sous la forme d'un tableau commençant à la position 0.

Exemples

Exemple #1 Exemple avec mysql_fetch_row()

<?php
$result 
mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
   echo 
'Impossible d\'exécuter la requête : ' mysql_error();
   exit;
}
$row mysql_fetch_row($result);

echo 
$row[0]; // 42
echo $row[1]; // la valeur du champ email
?>

Notes

Note: Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi



mysql_field_flags> <mysql_fetch_object
[edit] Last updated: Mon, 20 May 2013
 
add a note add a note User Contributed Notes mysql_fetch_row - [8 notes]
up
1
mysql at polyzing dot com
9 years ago
It is probably worth pointing out that the array elements will actually be of type string, OR NULL if the field is null in the database.

Thus, either use a double equal comparison to look for empty or null

Or, use a triple equal comparison to be able to distinguish the two cases

e.g.

if ($field === '') echo "Empty, not NULL\n";

if ($field === NULL) echo "NULL\n";

if ($field == '') echo "Empty or NULL\n";
up
1
michael and then an at sign wassupy.com
10 years ago
to print an array, simply use print_r(array name)

like this:
    $myrow = mysql_fetch_row($result);
echo "<pre>";
print_r($myrow);
echo "</pre>";

this will output the array in a readable form, with the index, too. Don't forget the 'pre' tags or the output will be on a single line.
up
2
m dot s at programmers-online dot net
7 years ago
The following function to read all data out of a mysql-resultset, is may be faster than Rafaels solution:

<?
function mysql_fetch_all($result) {
   while($row=mysql_fetch_array($result)) {
       $return[] = $row;
   }
   return $return;
}
?>
up
1
ryhan_balboa at yahoo dot com
5 years ago
The following are the basic codes to get a specific row from the mysql db into a $row variable:

 
$query = "SELECT * FROM table";
$result = mysql_query($query);
$row = mysql_fetch_row($result);

And $row[0], $row[1] ... $row[n] are used to access those field values.

Does anyone know how I can add a new field to $row, so that the field count increases from n to n+1?

I have tried treating $row like an array, and tried array_push function, but didn't work.

Thanks.
up
0
a at simongrant dot org
11 years ago
Maybe worth pointing out that all the fields returned by this (and other?) calls are returned with type string. This had me puzzled for quite some time.
up
-1
sarciszewski at knights dot ucf dot edu
1 month ago
If you need to quickly just grab all of a particular column (for example, with a "SELECT DISTINCT a FROM x" query), this quick function will just slice through and fetch an array of the resultant values:
<?
function mysql_slice($query, $colNo=0) {
  // Return an array of single columns
  if(gettype($query) == 'string') {
    $sql = mysql_query($query) or die(mysql_error());
  } else {
    $sql = $query;
    var_dump($query);
  }
  $array = array();
  for($i = 0; $i < mysql_num_rows($sql); $i++) {
    $array[] = mysql_result($sql, $i, $colNo);
  }
  mysql_free_result($sql);
  return $array;
}
?>
To use it:
<?
  foreach(mysql_slice("SELECT DISTINCT field FROM table") AS $x) {
    echo "{$x}\n";
 }
// OR
  $array = mysql_slice("SELECT DISTINCT field FROM table");
  var_dump($array);
?>
up
-2
jhulbert at redf dot com
3 years ago
Creates table from all db info:

<?php
$qry
= "SELECT * FROM exp_member_data";
$res = mysql_query($mem_qry);

function
mysql_fetch_all($res) {
   while(
$row=mysql_fetch_array($res)) {
      
$return[] = $row;
   }
   return
$return;
}

function
create_table($dataArr) {
    echo
"<tr>";
    for(
$j = 0; $j < count($dataArr); $j++) {
        echo
"<td>".$dataArr[$j]."</td>";
    }
    echo
"</tr>";
}

$all = mysql_fetch_all($res);

echo
"<table class='data_table'>";

for(
$i = 0; $i < count($all); $i++) {
   
create_table($all[$i]);
}

echo
"</table>";

?>
up
-2
larkitetto at gmail dot com
5 years ago
sry :) note now fixed:

<?php
$esi
=mysql_list_tables($db);$ris=mysql_fetch_row($esi);
//example: $db has >= 1 tabs
echo var_dump($ris);
//echoes only array(1). solution:
while($ris=mysql_fetch_row($esi)) echo $ris[0];
/*debug:
$ris=array("1st_tab"); ... $ris=array("n_tab");$ris=false;*/
while ($ris[]=mysql_fetch_row($esi));
//debug:$ris=array(array("1st_tab"), ... array("n_tab"));
echo $ris[n][0];//echo:"n_tab"
echo $ris[0][n];//echo:array | null
?>

hope it helps

 
show source | credits | sitemap | contact | advertising | mirror sites