Здравствуйте, Вопрос в заголовке очень размытый, сейчас постараюсь описать более конкретно... Столкнулся с некоторым непониманием, как правильно сформировать 2 действия. Сначала делаю выборку из бд, допустим: Код (Text): $sql = "SELECT * FROM persons"; $qr_result = mysql_query($sql) or die(mysql_error()); Запрос отрабатывает (тут никаких проблем). А дальше я хочу произвести 2 вещи. 1 - Выбрать только первое из полей из persons и вывести его, к примеру в echo. Что-то вроде Код (Text): $data = mysql_fetch_array($qr_result); echo '$data['name'] '; 2 - Сразу же после этого пройтись опять по всему запросу. Т.е. Код (Text): while ($data = mysql_fetch_array($qr_result)) { echo '<tr>'; echo '<td>' . $data['id'] . '</td>'; echo '<td>' . $data['name'] . '</td>'; echo '</tr>'; } Но я сталкиваюсь с тем, что скорее всего я ошибочно это делаю дважды через mysql_fetch_array, т.к. в цикле у меня начинается выборка уже не с 0 элемента, а с 1ого. (т.е. наверное что-то вроде итератора, который уже сделал 1 раз next(); ). Как мне правильно обратится первый раз к полю запроса и выдрать оттуда инфу ? Не делать же 2 раза один и тот-же запрос в бд... Спасибо.
Из запроса формируется таблица. В заголовок идёт инфа из последнего поля (которое везде одинаковое), остальные 2 поля вписываются в саму таблицу. Т.е. например имеем Persons(Id, Name, Info) 3 шт. Info 1 раз посмотрели из самого первого persons и запихнули в шапку, а потом этих 3х persons вписали в таблицу (ввиде 2х колонок - id, name (без info)). И, скорее всего, моя ошибка что мне в первый раз надо выдирать элемент не через mysql_fetch_array() чтоб второй раз он шёл с 0 элемента. Или как я могу его контролировать ?
Первое обращение выведи заголовок и сразу первую строчку таблицы, а в цикле уже остальное. Будет дублирование кода но ничего
Мысль понял. А другие варианты (в принципе) существуют ? Возможно ли вообще 2 раза пройтись по резалту ? Пробую так Код (Text): while ($data = mysql_fetch_array($qr_result)) { //что-то внутри } while ($data = mysql_fetch_array($qr_result)) { //что-то внутри } И второй уже не отрабатывает. Или без повторного mysql_query() тут никак ?
Да можно, но думаю ошибка в логике это держать имена заголовков вместе с другими записями. Код (PHP): $data2 = array(); while ($data = mysql_fetch_array($qr_result)) { $data2[] = $data; } foreach ($data2 as $value) { //что-то внутри } Или одной строчкой, но читай документацию внимательно https://php.net/manual/ru/mysqli-result.fetch-all.php