Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2008, 17:46   #1
smoke888
 
Регистрация: 06.06.2008
Сообщений: 9
Счастье mysql_result и mysql_query

Привет всем!

Подскажите плиз, ни как въехать не могу.

Делаю запрос к БД командой
$query = mysql_query("SELECT .......").

Потом вытаскиваю некоторые значения запроса командой mysql_result($query,0,$i).

После этого хочу еще попользоваться запросом $query путем записи ассоциативного массива $massiv = mysql_fetch_assoc($query).

Но это не работает. $massiv пустой.
Поясните как так?
smoke888 вне форума Ответить с цитированием
Старый 12.07.2008, 18:01   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

mysql_result - старая и медленная функция. Не пользуйся ей. Если хочешь вытащить ряд - используй mysql_fetch_row.
Не забывай также, что эти функции сдвигают указатель внутри результата. Чтобы "перемотать" указатель на ноль - используй mysql_data_seek, хотя я стараюсь обходиться без таких вещей. Продумывай лучше структуру своего скрипта.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 12.07.2008, 18:19   #3
smoke888
 
Регистрация: 06.06.2008
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
mysql_result - старая и медленная функция. Не пользуйся ей. Если хочешь вытащить ряд - используй mysql_fetch_row.
Не забывай также, что эти функции сдвигают указатель внутри результата. Чтобы "перемотать" указатель на ноль - используй mysql_data_seek, хотя я стараюсь обходиться без таких вещей. Продумывай лучше структуру своего скрипта.

мне надо 1 раз вытащить из всего массива одно значение - как это сделать с помощью mysql-fetch-row?

Про сдвиг указателя поясни подробнее. Или подскажи где можно прочесть?
smoke888 вне форума Ответить с цитированием
Старый 12.07.2008, 23:57   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Ты определись, ты
Цитата:
вытаскиваю некоторые значения запроса командой mysql_result($query,0,$i)
или
Цитата:
1 раз вытащить из всего массива одно значение
потому что в программировании это разные вещи.

Про перемотку можно тут почитать:
http://www.php.net/manual/ru/functio...-data-seek.php
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 13.07.2008, 15:28   #5
smoke888
 
Регистрация: 06.06.2008
Сообщений: 9
По умолчанию

Все таки, если я после mysql_query втыкаю в код mysql_result, функция mysql_fetch_row покажет лишь часть массива, пока я не вставлю перед ним mysql_data_seek ??
smoke888 вне форума Ответить с цитированием
Старый 13.07.2008, 15:55   #6
smoke888
 
Регистрация: 06.06.2008
Сообщений: 9
По умолчанию

Кароче, я понял, mysql_result никак на самом деле не влияет на вывод данных из БД в массив.
Скока бы их не стояло после mysql_query все рабоает нормально.
Но вот 2-ой раз делать $row = @mysql_fetch_assoc($query) нельзя, первая строка результата не отобразиться.
Правда почему, я так и не могу понять. И главное как тогда быть...
smoke888 вне форума Ответить с цитированием
Старый 13.07.2008, 16:09   #7
smoke888
 
Регистрация: 06.06.2008
Сообщений: 9
По умолчанию

Тему можно закрыть. Проблема решена.
Действительно использование подряд функций mysql_fetch_assoc сдвигает указатель запроса.
Восстановить его позицию можно используя функцию mysql_data_seek.

Johnatan спасибо.
smoke888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$aaa=mysql_result($result, $i-1, 'date'); serjik PHP 3 04.06.2008 15:04