Массивы и select php

mysql_fetch_array

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

Описание

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

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

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

Тип возвращаемого массива. Является константой и может принимать следующие значения: MYSQL_ASSOC , MYSQL_NUM и MYSQL_BOTH .

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

Возвращает массив строк, соответствующих обработанному ряду результата запроса, или FALSE , если рядов больше нет. Тип возвращаемого массива зависит от значения параметра result_type . При использовании MYSQL_BOTH (по умолчанию), вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные индексы (аналогично функции mysql_fetch_assoc() ), а MYSQL_NUM — только численные (аналогично функции mysql_fetch_row() ).

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

Примеры

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

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

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

mysql_connect ( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Ошибка соединения: » . 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 Имя: %s» , $row [ 0 ], $row [ 1 ]);
>

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

mysql_connect ( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Ошибка соединения: » . 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 Имя: %s» , $row [ «id» ], $row [ «name» ]);
>

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

mysql_connect ( «localhost» , «mysql_user» , «mysql_password» ) or
die( «Ошибка соединения: » . 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 Имя: %s» , $row [ 0 ], $row [ «name» ]);
>

Примечания

Замечание: Производительность

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

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

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

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

  • mysql_fetch_row() — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_assoc() — Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_data_seek() — Перемещает внутренний указатель в результате запроса
  • mysql_query() — Посылает запрос MySQL
Читайте также:  How to make python files exe

Источник

Заполнить поле SELECT из массива

Вывод массива из БД в поле select
Здравствуйте. В проекте есть поле "Выбор фотосессий", в БД записано как `ps_types`. Выбирается из.

Как при выборе определённого значения поля select показать новое поле select
Такая задача, у меня есть список значений в поле типа select. Value1 Value2 Value3 Value4 При.

Как связать поле список-() поле text и checkbox
есть поле text — фамилия, потом поле с датой, поле список — наименование товара, поле text — кол-во.

foreach ($array as $key => $value) { echo $key; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
 $array = array ( "Ru" => array ( "1"=>"a", "2"=>"б", "3"=>"в", "4"=>"г", "5"=>"д" ), "En" => array ( "6"=>"a", "7"=>"b", "8"=>"c", "9"=>"d", "10"=>"e" ) ); ?> select> option value=""> /option> ($array as $k1=>$v1)< echo "optgroup label='$k1'>"; foreach($v1 as $k2=>$v2) echo "option value='$k2'>$v2/option>"; echo "/optgroup>"; >?> /select>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
$array = array ( "Ru" => array ( "1"=>"a", "2"=>"б", "3"=>"в", "4"=>"г", "5"=>"д" ), "En" => array ( "6"=>"a", "7"=>"b", "8"=>"c", "9"=>"d", "10"=>"e" )); echo '';

Накинулись все Про лейбл забыли — вроде как ТС спрашивал

1 2 3 4 5 6 7 8 9 10 11 12 13
. echo ''; echo '';

Запрос sql UPDATE .SET поле=м.поле FROM (SELECT.) AS м
Вечер добрый, граждане, подскажите пожалуйста. можно ли в Access реализовать запрос вида .

Заполнить поле случайным числом, если другое соответствующее поле не пустое
est table. mne neobhodimo(v sql server) zapolnit pole ‘Number_of_Reviews’ sluchainimi chislami v.

Заполнить select значениями
На странице есть пустой объект select <select При нажатии на кнопку.

Заполнить тег select опциями
Добрый день. делаю гаджет на Win8 — 10 — отправка отзывов на сотрудников. В форме гаджета, в HTML.

Источник

Как написать код запроса в БД в связке с массивом?

UoTlezs.png

Есть у меня таблица пользователей
users_id | user_name
и есть массив с id который совпадает с user_id

надо как то сделать запрос чтобы к тем id что в массиве привязать их name

подскажите как это сделать?

Простой 19 комментариев

slo_nik

mrusklon

slo_nik, не совсем понял, нужно мой массив подставить в запрос? Как sql свяжет мои user_id с фио через users_id?

slo_nik

mrusklon

slo_nik

mrusklon

slo_nik, я понимаю как id из массива совпадет с id пользователя , но не понимаю как потом получить его name
такие вот задачи себе ставлю , учусь )
мне выходит надо как то массив мой превратить в строку для запроса в нормальном виде для запроса еще , верно?

slo_nik

mrusklon

$result = []; $sql = "SELECT * FROM users WHERE users_id = тут мои id из массива"; $re = $mysqli->query($sql); if ($row = $re->fetch_assoc())

slo_nik

slo_nik

mrusklon

slo_nik, он выполняется нормально , если поставить id существующего пользователя в запрос то выдаст его имя , массив result я использую для возврата через ajax в ответ . Или там итак массив будет в $re ?
только теперь вопрос как подставить массив с моими id в запрос)

slo_nik

mrusklon

$sql = "SELECT * FROM users WHERE users_id IN ('14','13','11')";

а почему в таком варианте работает только с последним значением которое указанно ’11’ ?, укажу 14 и уже только то имя будет

slo_nik

mrusklon

$sql = "SELECT * FROM users WHERE users_id IN ('14','13','11')"; $result2 = $mysqli->query($sql); $row = $result2->fetch_assoc();

$row[‘name’] — возвращает одно имя
а $row возвращает ассоциативный массив но только с одного пользователя
а если просто в sql запрос сделать

SELECT * FROM users WHERE users_id IN ('14','13','11')

slo_nik

mrusklon

slo_nik, наконец я нашел, там был раньше цикл , просто он тоже раньше не работал )

теперь я понял как работает это дело , дальше сформирую из своего массива вот такую строку (’14’,’13’,’11’) и все будет гуд , спасибо вам за помощь, хотел бы выбрать ваш ответ решением , может перенесете его в ответы из комментов?

slo_nik

mrusklon

slo_nik, а я вот и не знаю даже 🙂 я думаю
«Доброе утро.
В запросе, в условии where через IN подставить все нужные id и получить результат.»
вполне ))

Maksclub

Взять все нужные Id, по ним одним запросом взять данные из БД, всем полученным насытить то, что вам нужно

mrusklon

SELECT * FROM users WHERE users_id = $мои id из массива

Maksclub

slo_nik

SELECT * FROM `table_name` WHERE `id` IN(тут_необходимые_id)

FanatPHP

Для ответа на этот вопрос надо сделать три вещи
1. Перестать постить сюда картинки вывода массивов из консоли браузера. РНР — не яваскрипт, а консоль браузера — не веб-сервер. Если работать надо с массивом РНР, то и вывод массива надо делать из РНР.
2. Получить из этого неудобного массива список id в одномерный массив. Это делается с помощью функции array_column()
3. Запросить из базы все строки, id которых совпадают со значениями в массиве. Разумеется, делать это только через подготовленные выражения

Источник

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

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

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

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
 //создаем и выполняем запрос к таблице пользователей $query = "SELECT id, name FROM users ORDER BY id LIMIT 10"; $result = $mysqli->query($query); //выводим данные while($row = $result->fetch_array()) < echo $row['id']." ".$row['name']."
"; > // очищаем result-объект $result->close(); // закрываем соединение $mysqli->close();

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

while($row = $result->fetch_array(MYSQLI_NUM)) < echo $row[0]." ".$row[1]."
"; >

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

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 //создаем и выполняем запрос к таблице пользователей $query = "SELECT id, name FROM users ORDER BY id LIMIT 10"; $result = mysqli_query($connectLink, $query); //преобразуем данные в ассоциативный массив, выводим их построчно while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) < echo $row['id']." ".$row['name']."
"; > // очищаем result-объект mysqli_free_result($result); // закрываем соединение mysqli_close($connectLink);

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

$row = mysqli_fetch_array($result, MYSQLI_ASSOC)

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

Какой способ выбрать — решать вам.

Источник

Оцените статью