mysql_fetch_row
Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для данной функции:
Описание
Возвращает массив с числовыми индексами, содержащий данные обработанного ряда, и сдвигает внутренний указатель результата вперёд.
Список параметров
Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query() .
Возвращаемые значения
Возвращает массив строк с числовыми индексами, содержащий данные обработанного ряда, или false , если рядов не осталось.
mysql_fetch_row() обрабатывает один ряд результата, на который ссылается переданный указатель. Ряд возвращается в виде массива. Каждая колонка располагается в следующей ячейке массива, начиная с нулевого индекса
Примеры
Пример #1 Получение одного ряда с помощью mysql_fetch_row()
$result = mysql_query ( «SELECT id,email FROM people WHERE » );
if (! $result ) echo ‘Ошибка запроса: ‘ . mysql_error ();
exit;
>
$row = mysql_fetch_row ( $result );
?php
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() — Возвращает данные результата запроса
User Contributed Notes 4 notes
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.
require ‘prhlavicka.php’ ;
pis_hlavicku ( ‘Vypis článků’ );
?php>
require_once ‘db.php’ ;
$kom = new server ();
$sql = $kom -> query ( «SELECT autor,nazev,obsah FROM `Clanky_Sadek`» );
while ( $data = mysql_fetch_row ( $sql )) ECHO ‘
—AUTOR—
‘ . $data [ 0 ]. ‘
__NÁZEV ČLÁNKU__
‘ . $data [ 1 ]. ‘
..OBSAH ČLÁNKU..
‘ . $data [ 2 ]; >
to print an array, simply use print_r(array name)
like this:
$myrow = mysql_fetch_row($result);
echo «
";
print_r($myrow);
echo "
«;
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.
$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
- MySQL
- mysql_affected_rows
- mysql_client_encoding
- mysql_close
- mysql_connect
- mysql_create_db
- mysql_data_seek
- mysql_db_name
- mysql_db_query
- mysql_drop_db
- mysql_errno
- mysql_error
- mysql_escape_string
- mysql_fetch_array
- mysql_fetch_assoc
- mysql_fetch_field
- mysql_fetch_lengths
- mysql_fetch_object
- mysql_fetch_row
- mysql_field_flags
- mysql_field_len
- mysql_field_name
- mysql_field_seek
- mysql_field_table
- mysql_field_type
- mysql_free_result
- mysql_get_client_info
- mysql_get_host_info
- mysql_get_proto_info
- mysql_get_server_info
- mysql_info
- mysql_insert_id
- mysql_list_dbs
- mysql_list_fields
- mysql_list_processes
- mysql_list_tables
- mysql_num_fields
- mysql_num_rows
- mysql_pconnect
- mysql_ping
- mysql_query
- mysql_real_escape_string
- mysql_result
- mysql_select_db
- mysql_set_charset
- mysql_stat
- mysql_tablename
- mysql_thread_id
- mysql_unbuffered_query
Php что такое row
Для получения данных в MySQL применяется команда SELECT . Например, получение всех данных из таблицы Users:
Рассмотрим получение данных на примере таблицы Users, созданной в прошлых, которая имеет следующее определение:
CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER)
Объектно-ориентированный стиль
При выполнении команды SELECT метод query() объекта mysqli возвращает набор полученных строк, который мы можем перебрать с помощью цикла. Например, перебор с помощью цикла foreach :
$sql = "SELECT * FROM Users"; if($result = $conn->query($sql)) < foreach($result as $row)< $userid = $row["id"]; $username = $row["name"]; $userage = $row["age"]; >>
Здесь $result представляет набор строк. Каждый его элемент, который передается в переменную $row , хранит данные отдельной строки в виде ассоциативного массива, где ключи элементов — названия столбцов.
Вместо цикла foreach также можно использовать другие виды циклов. Например, применение цикла while :
$sql = "SELECT * FROM Users"; if($result = $conn->query($sql))< while($row = $result->fetch_array()) < $userid = $row["id"]; $username = $row["name"]; $userage = $row["age"]; >>
В данном случае метод $result->fetch_array() выбирает текущую строку из набора в переменную $row и переходит к следующей. Когда строк не останется, метод возвратит false , и произойдет выход из цикда. Полученное значени $row опять же представляет строку в виде ассоциативного массива.
После окончания работы с полученным набором строк мы можем очистить отведенную для него память с помощью метода free() :
Теперь посмотрим на примере. Определим скрипт index.php , которая будет выводить значения из таблицы Users:
Список пользователей
connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "SELECT * FROM Users"; if($result = $conn->query($sql))< $rowsCount = $result->num_rows; // количество полученных строк echo "Получено объектов: $rowsCount
"; echo "
"; $result->free(); > else< echo "Ошибка: " . $conn->error; > $conn->close(); ?> "; foreach($result as $row)< echo "Id Имя Возраст "; echo " "; > echo "" . $row["id"] . " "; echo "" . $row["name"] . " "; echo "" . $row["age"] . " "; echo "Таким образом, при обращении к скрипту index.php браузер отобразит список данных, полученных из БД:
Дополнительно стоит отметить, что с помощью свойства $result->num_rows мы можем получить количество строк, извлеченных из БД.
Процедурный стиль
При процедурном стиле функция mysqli_query() при успешном выполнении команды SELECT возвращает набор строк, который можно перебрать с помощью цикла:
$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql)) < foreach($result as $row)< $userid = $row["id"]; $username = $row["name"]; $userage = $row["age"]; >>
Как и при объектно-ориентированном подходе, полученные строки представляют ассоциативные массивы, где ключи элементов — названия столбцов.
Пример перебоа с помощью цикла while :
$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql)) < while($row = mysqli_fetch_array($result))< $userid = $row["id"]; $username = $row["name"]; $userage = $row["age"]; >>
Функция mysqli_fetch_array() выбирает текущую строку из набора в переменную $row и переходит к следующей. Когда строк не останется, метод возвратит false , и произойдет выход из цикла.
После окончания работы с полученным набором строк мы можем очистить отведенную для него память с помощью функции mysqli_free_result() , в которую передается полученный набор строк:
Список пользователей
$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql))< $rowsCount = mysqli_num_rows($result); // количество полученных строк echo "Получено объектов: $rowsCount
"; echo "
"; mysqli_free_result($result); > else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?> "; foreach($result as $row)< echo "Id Имя Возраст "; echo " "; > echo "" . $row["id"] . " "; echo "" . $row["name"] . " "; echo "" . $row["age"] . " "; echo "