Mysql fetch array вывести все

PHP mysql_fetch_array () ; вывод всех данных

Гость

Допустим нужно достать все данные на конкретного человека из базы.

$result= mysql_query(«SELECT * FROM table);
$a = mysql_fetch_array($result);

как вывести все данные, что есть в $a, не вписывая к примеру echo $a[‘имя’], $a[‘фамилия’]. А к примеру echo $a[‘всё_сразу’].
Дополнено (1). Да, while ($a = mysql_fetch_array($result. <

echo $a[‘имя’] . » «; мне придется вписывать 33 штуки $a[‘имя’] … Именно в это вопрос. Как сделать вывод без указания полей. ПРосто вывести всё.
Дополнено (2). Я хочу сделать — —не прописывать все 33 поля ( echo » a[‘b’], a[‘c’], a[‘d’], a[‘e’]… «;) ЛЕНЬ!

Людмила Васнецова

Бред…$a — массив, а $a[‘поле таблицы’]

В данном случае выводится все в цикле

while ($a = mysql_fetch_array($result. <

а еще есть конкатенация, $var = $var1. $var2;

33 штуки чего? Полей? Ну так ясен пень что в ручную надо. Или заменить на числовые значения, то есть По порядку начиная с 0

смотрим print_r($a);
гугли)

а вообще моя твою не понимать что она хотеть сделать…

Maxim Volkov

Самая настоящая дыра в запросе SQL

Источник

Получение строки данных в виде массива. Функции mysqli_fetch_array() (или mysql_fetch_array())

Функция mysqli_fetch_array() (mysql_fetch_array()) используется для получения одной строки из результирующего набора, которую она помещает в массив. При этом можно получить как ассоциативный массив, так и массив с числовыми индексами. Кроме того, можно вернуть сразу оба типа массива, передав соответствующий параметр.

Так как функция mysql_fetch_array() сейчас является устаревшей и имеет статус «depricated», то рекомендуется в коде использовать ее модификацию — mysqli_fetch_array(). При этом разницы в использовании практически нет никакой.

Данную функцию можно использовать в «объектно-ориентированном» или «процедурном» стиле. Рассмотрим сначала «объектно-ориентированный» стиль. Допустим у нас имеется база данных «my_dbbase», в которой есть таблица «users». Из нее нам необходимо достать 10 строк (id пользователя и его имя) и вывести эти данные построчно:

В данном примере мы использовали константу MYSQLI_ASSOC, чтобы получить данные в виде ассоциативного массива. Ключом при этом будет является название колонки в таблице. Если же нам нужен обычный массив с числовыми ключами, то можно использовать константу MYSQLI_NUM:

Но в большинстве случаев использование ассоциативного массива все же более оправдано, т.к. код при этом становится более читабельным (мы четко видим, какой элемент мы используем). Единственное, о чем здесь нужно помнить, что если вы делаете выборку из нескольких таблиц одним запросом, то в случае совпадения имен колонок, они будут перетираться. В этом случае целесообразно использовать алиасы для колонок.

Существует и второй способ использования функции mysqli_fetch_array — процедурный:

Каждый раз, когда мы выполняем

, то в $row помещается новая строка из выборки, а указатель в результирующей выборке при этом смещается на следующую строку. Таким образом, мы можем пройтись по всем строкам.

Источник

Mysql fetch array вывести все

(PHP 3, PHP 4, PHP 5)

mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба.

Описание array mysql_fetch_array ( resource result [, int result_type] )

Возвращает массив с обработанным рядом результата запроса, или FALSE , если рядов больше нет.

Если несколько колонок в результате будут иметь одинаковые названия, последняя колонка будет возвращена. Чтобы получить доступ к первым, используйте численные индексы массива или алиасы в запросе. В случае алиасов используйте именно их — вы не сможете использовать настоящие имена колонок, как например не сможете использовать ‘field’ в нижеописанном примере.

Пример 1. Запрос с дублирующимися именами колонок

select table1.field as foo, table2.field as bar from table1, table2

Второй опциональный аргумент result_type в функции mysql_fetch_array() — константа и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Эта возможность добавлена в PHP 3.0.7. Значением по умолчанию является: MYSQL_BOTH.

Используя MYSQL_BOTH, вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные соответствия (аналогично функции mysql_fetch_assoc() и MYSQL_NUM только численные (аналогично функции mysql_fetch_row() ).

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы .

Пример 2. mysql_fetch_array() с MYSQL_NUM

( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Could not connect: » . mysql_error ());
mysql_select_db ( «mydb» );

$result = mysql_query ( «SELECT id, name FROM mytable» );

while ( $row = mysql_fetch_array ( $result , MYSQL_NUM )) <
printf ( «ID: %s Name: %s» , $row [ 0 ], $row [ 1 ]);
>

mysql_free_result ( $result );
?>

Пример 3. mysql_fetch_array() с MYSQL_ASSOC

( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Could not connect: » . mysql_error ());
mysql_select_db ( «mydb» );

$result = mysql_query ( «SELECT id, name FROM mytable» );

while ( $row = mysql_fetch_array ( $result , MYSQL_ASSOC )) <
printf ( «ID: %s Name: %s» , $row [ «id» ], $row [ «name» ]);
>

mysql_free_result ( $result );
?>

Пример 4. mysql_fetch_array() с MYSQL_BOTH

( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Could not connect: » . mysql_error ());
mysql_select_db ( «mydb» );

$result = mysql_query ( «SELECT id, name FROM mytable» );

while ( $row = mysql_fetch_array ( $result , MYSQL_BOTH )) <
printf ( «ID: %s Name: %s» , $row [ 0 ], $row [ «name» ]);
>

Источник

mysqli_result::fetch_array

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_array — mysqli_fetch_array — Выбирает одну строку из результирующего набора и помещает её в ассоциативный массив, обычный массив или в оба

Описание

Возвращает массив, соответствующий выбранной строке или null , если в результирующем наборе больше нет доступных строк.

Помимо хранения данных в числовых индексах массива результатов, функция также может сохранять данные в ассоциативных индексах, используя имена полей набора результатов в качестве ключей.

Если два и более столбца результата имеют одинаковое имя, последний столбец будет иметь приоритет и перезапишет любые предыдущие данные. В таких ситуациях для доступа к данным всех столбцов с одинаковыми именами лучше пользоваться обычными массивами, индексированными номерами столбцов.

Замечание: Имена полей, возвращаемые этой функцией являются зависимыми от регистра.

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

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

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: MYSQLI_ASSOC , MYSQLI_NUM или MYSQLI_BOTH .

При использовании константы MYSQLI_ASSOC функция будет вести себя идентично mysqli_fetch_assoc() , а при MYSQLI_NUM идентично функции mysqli_fetch_row() . При задании MYSQLI_BOTH функция создаст один массив, включающий атрибуты обоих вариантов.

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

Возвращает массив значений, соответствующих выбранной строке набора или null , если в результирующей таблице больше нет данных.

Примеры

Пример #1 Пример использования mysqli_result::fetch_array()

( MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT );
$mysqli = new mysqli ( «localhost» , «my_user» , «my_password» , «world» );

$query = «SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3» ;
$result = $mysqli -> query ( $query );

/* числовой массив */
$row = $result -> fetch_array ( MYSQLI_NUM );
printf ( «%s (%s)\n» , $row [ 0 ], $row [ 1 ]);

/* ассоциативный массив */
$row = $result -> fetch_array ( MYSQLI_ASSOC );
printf ( «%s (%s)\n» , $row [ «Name» ], $row [ «CountryCode» ]);

/* ассоциативный и числовой массивы */
$row = $result -> fetch_array ( MYSQLI_BOTH );
printf ( «%s (%s)\n» , $row [ 0 ], $row [ «CountryCode» ]);

( MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT );
$mysqli = mysqli_connect ( «localhost» , «my_user» , «my_password» , «world» );

$query = «SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3» ;
$result = mysqli_query ( $mysqli , $query );

/* числовой массив */
$row = mysqli_fetch_array ( $result , MYSQLI_NUM );
printf ( «%s (%s)\n» , $row [ 0 ], $row [ 1 ]);

/* ассоциативный массив */
$row = mysqli_fetch_array ( $result , MYSQLI_ASSOC );
printf ( «%s (%s)\n» , $row [ «Name» ], $row [ «CountryCode» ]);

/* ассоциативный и числовой массивы */
$row = mysqli_fetch_array ( $result , MYSQLI_BOTH );
printf ( «%s (%s)\n» , $row [ 0 ], $row [ «CountryCode» ]);

Результат выполнения данных примеров:

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

  • mysqli_fetch_assoc() — Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_column() — Получает один столбец из следующей строки набора результатов
  • mysqli_fetch_row() — Получение строки результирующей таблицы в виде массива
  • mysqli_fetch_object() — Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() — Выполняет запрос к базе данных
  • mysqli_data_seek() — Перемещает указатель результата на выбранную строку

User Contributed Notes 4 notes

Putting multiple rows into an array:

= new mysqli ( «localhost» , «my_user» , «my_password» , «world» );

/* check connection */
if ( mysqli_connect_errno ()) <
printf ( «Connect failed: %s\n» , mysqli_connect_error ());
exit();
>

$query = «SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3» ;
$result = $mysqli -> query ( $query );

while( $row = $result -> fetch_array ())
<
$rows [] = $row ;
>

foreach( $rows as $row )
<
echo $row [ ‘CountryCode’ ];
>

/* free result set */
$result -> close ();

/* close connection */
$mysqli -> close ();
?>

Note that the array returned contains only strings.

E.g. when a MySQL field is an INT you may expect the field to be returned as an integer, however all fields are simply returned as strings.

What this means: use double-equals not triple equals when comparing numbers.

print $array_from_mysqli_fetch_array [ ‘id’ ] == 1 ? «true» : «false» ; // true
print $array_from_mysqli_fetch_array [ ‘id’ ] === 1 ? «true» : «false» ; // false
?>

Please note that under PHP 5.x there appears to be a globally defined variable MYSQL_ASSOC, MYSQL_NUM, or MYSQL_BOTH which is the equivalent of MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. Yet under PHP 7.x this is NOT the case and will cause a failure in trying to retrieve the result set!

This can cause severe headaches when trying to find out why you are getting the error:
— mysqli_result::fetch_array() expects parameter 1 to be integer, string given in ‘Filename’ on line ‘XX’

Here is a function to return an associative array with multiple columns as keys to the array.

This is a rough approximation of the perl DBI->fetchall_hashref function — something I find myself using quite a bit.

Given a simple mySQL table:

mysql> select * from city;
+—————-+—————-+——————+————+
| country | region | city | hemisphere |
+—————-+—————-+——————+————+
| South Africa | KwaZulu-Natal | Durban | South |
| South Africa | Gauteng | Johannesburg | South |
| South Africa | Gauteng | Tshwane | South |
| South Africa | KwaZulu-Natal | Pietermaritzburg | South |
| United Kingdom | Greater London | City of London | North |
| United Kingdom | Greater London | Wimbledon | North |
| United Kingdom | Lancashire | Liverpool | North |
| United Kingdom | Lancashire | Manchester | North |
+—————-+—————-+——————+————+

*Note* — this is a simple function that makes no attempt to keep multiple values per key, so you need to specify all the unique keys you require.

= mysqli_connect ( «localhost» , «username» , «password» , «test» );
$result = mysqli_query ( $link , «select * from city» );
$results_arr = fetch_all_assoc ( $result ,array( ‘hemisphere’ , ‘country’ , ‘region’ , ‘city’ ));

function fetch_all_assoc (& $result , $index_keys ) <

// Args : $result = mysqli result variable (passed as reference to allow a free() at the end
// $indexkeys = array of columns to index on
// Returns : associative array indexed by the keys array

$assoc = array(); // The array we’re going to be returning

while ( $row = mysqli_fetch_array ( $result , MYSQLI_ASSOC )) <

$pointer = & $assoc ; // Start the pointer off at the base of the array

for ( $i = 0 ; $i count ( $index_keys ); $i ++) <

$key_name = $index_keys [ $i ];
if (!isset( $row [ $key_name ])) <
print «Error: Key $key_name is not present in the results output.\n» ;
return( false );
>

$key_val = isset( $row [ $key_name ]) ? $row [ $key_name ] : «» ;

if (!isset( $pointer [ $key_val ])) <

$pointer [ $key_val ] = «» ; // Start a new node
$pointer = & $pointer [ $key_val ]; // Move the pointer on to the new node
>
else <
$pointer = & $pointer [ $key_val ]; // Already exists, move the pointer on to the new node
>

// At this point, $pointer should be at the furthest point on the tree of keys
// Now we can go through all the columns and place their values on the tree
// For ease of use, include the index keys and their values at this point too

foreach ( $row as $key => $val ) <
$pointer [ $key ] = $val ;
>

/* free result set */
$result -> close ();

Источник

Читайте также:  Чем вывести следы от клопов
Оцените статью