mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_rowОбрабатывает ряд результата запроса и возвращает массив с числовыми индексами

Внимание

Данный модуль устарел начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для этой функции:

Описание

mysql_fetch_row(resource $result): array

Возвращает массив с числовыми индексами, содержащий данные обработанного ряда, и сдвигает внутренний указатель результата вперёд.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает массив строк с числовыми индексами, содержащий данные обработанного ряда, или false, если рядов не осталось.

mysql_fetch_row() обрабатывает один ряд результата, на который ссылается переданный указатель. Ряд возвращается в виде массива. Каждая колонка располагается в следующей ячейке массива, начиная с нулевого индекса

Примеры

Пример #1 Получение одного ряда с помощью mysql_fetch_row()

<?php
$result
= mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!
$result) {
echo
'Ошибка запроса: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);

echo
$row[0]; // 42
echo $row[1]; // email
?>

Примечания

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Смотрите также

  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_fetch_lengths() - Возвращает длину каждого поля в результате
  • mysql_result() - Возвращает данные результата запроса

add a note add a note

User Contributed Notes 8 notes

up
-14
michael and then an at sign wassupy.com
21 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
-21
a at simongrant dot org
22 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
-27
pepik at gmail dot cz
10 years ago
<?php 
 
require 'prhlavicka.php';
 
pis_hlavicku('Vypis článků');        
   
   require_once
'db.php';
   
$kom = new server();
   
$sql=$kom->query("SELECT autor,nazev,obsah FROM `Clanky_Sadek`");
               while (
$data = mysql_fetch_row($sql)){
                 ECHO
'<br />--AUTOR--<br />'.$data[0].'<br />__NÁZEV ČLÁNKU__<br />'.$data[1].'<br />..OBSAH ČLÁNKU..<br />'.$data[2];     }   
 
  include
'Paticka.html'; ?>
up
-30
larkitetto at gmail dot com
16 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
up
-41
jhulbert at redf dot com
14 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
-45
ryhan_balboa at yahoo dot com
16 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
-47
m dot s at programmers-online dot net
18 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
-49
murapaka dot sateesh at gmail dot com
9 years ago
<?php

$conn
=mysql_connect("localhost","root","");
if(
$conn)
{
    echo(
"Connection Successfully");
   
$seldb=mysql_select_db("test",$conn);
    if(
$seldb)
    {
        echo(
"Database selected successfully");
       
$retrive=mysql_query("select name,number from login1 where name='sateesh'",$conn);
        if(
$retrive)
        {
            echo(
"Successfully data retrived<br>");
           
           
$result=mysql_fetch_row($retrive);
           
                echo (
"Name".$result[0]);
                echo (
"Number".$result[1]);
                   
        }
        else
        {
        echo
"Table not inserted";
        }
        }
        else
        {
            die(
"database not selected");
        }
    }
    else
    {
        die(
"connection faild");   
    }
   
mysql_close($conn);
?>
To Top