Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проблема с циклом действий через CURL
Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
Доброго времени суток господа!
Возникла проблема с циклом определенных действий через CURL.
Что нужно:
делать разные запросы в цикле через CURL и обрабатывать полученную инфу с внесением в БД. Ключи для запросных полей храняться в базе данных.
Привожу пример моего нерабочего кода:
-------------------------------- ---------------------------
полная фигня. Потому как count($row['data']) ВСЕГДА равно 1 и цикл будет выполнен один раз. Так что смысла в нем никакого нет.
Как я понимаю, ты посылаешь запрос на удаленный сервер в формате xml. Получаешь ответ - тоже в формате xml. Из полученного ответа получаешь с помощью рег. выражений нужные данные и записываешь их в БД.
Так что конкретно не получается? Послать запрос и получить ответ? Тогда curl_errno() и curl_error() тебе в помощь
Если же проблема в том, что не получается извлечь нужные данные с помощью рег.выражений, то где xml, из которого нужно извлекать данные? Или ты думаешь, тут все ясновидящие и по регулярному выражению способны восстановить xml, из которого извлекаются данные?
И последнее. Извлекать данные из xml с помощью рег.выражений - не самая лучшая идея. В PHP есть много средств для работы с xml:
Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
Конкретно не получается делать запросы в цикле. Тоесть не один запрос, а запросы по очереди с подстановкой ключей из базы данных. В данный момент получается только один запрос, дальше останавливается.
И так далее. Тоесть мне нужен цикл. Все остальное работает как часы, проблема в том, что физически получается один запрос, дальше остановка с ошибкой mysql_fetch_assoc.
Тоесть цикл запросов неработает. Предположительно нужно будет делать около 500 запросов, сейчас 50. Вот это все нужно сделать в цикле, потому что руками делать - не катит ))))
Ты правильно понял, что я получаю xml ответ. По поводу сессии,я её завершаю - здесь это пример - не весь участок кода. CURL - я дал в урезанном виде. Чтобы был понятен смысл моих действий. Вопрос заключается в цикле запросов, через CURL.
Я ЮЗАЮ php4
Цитата:
$query = "SELECT data FROM `test` WHERE data=556789";
$result = mysql_query($query, $connect) or die('Не могу подключиться базе данных');
Использую, причем два раза - для записи в базу или обновления данных. Ок - изменю на другие переменные,а с циклом что? Как правильно сделать?\n\n(Добавление)
Да там я сам напортачил, уже исправил теперь вот это выкидывает:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
evgenijj
Отправлено: 03 Января, 2008 - 16:08:49
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Нирвана пишет:
Использую, причем два раза - для записи в базу или обновления данных.
Функция mysql_fetch_assoc( $res ) ожидает в качестве параметра результат запроса к БД, а ты ей передаешь строку 'Я Вася Пупкин'
Добавление: а по английски это выглядит так
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
(переданный аргумент НЕ ЯВЛЯЕТСЯ результатом запроса к MySQL)
Цитата:
Ок - изменю на другие переменные,а с циклом что? Как правильно сделать?
Когда перестанешь использовать еще раз переменную $result внутри цикла - и ошибка сама пропадет.
Покинул форум
Сообщений всего: 13
Дата рег-ции: Янв. 2008
Помог: 0 раз(а)
УФФФФФФ, Спасибо тебе большое - бадяга была в $result - изменил переменную - заработало - count я убрал. Чичас проверил - данные записались в базу, какие нужно.\n\n(Добавление)
evgenijj пишет:
Нирвана пишет:
Использую, причем два раза - для записи в базу или обновления данных.
Функция mysql_fetch_assoc( $res ) ожидает в качестве параметра результат запроса к БД, а ты ей передаешь строку 'Я Вася Пупкин'
Добавление: а по английски это выглядит так
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
(переданный аргумент НЕ ЯВЛЯЕТСЯ результатом запроса к MySQL)
Цитата:
Ок - изменю на другие переменные,а с циклом что? Как правильно сделать?
Когда перестанешь использовать еще раз переменную $result внутри цикла - и ошибка сама пропадет.
Понял. Спасибо за помощь и понятный ответ.))) Теперь работает )))
Dastar
Отправлено: 03 Января, 2008 - 17:35:56
Частый гость
Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008 Откуда: Израиль
Помог: -6 раз(а)
Такой вопрос, а если $data['name'] является массивом, то count() все равно будет равен одному?
----- Не знаешь - молчи.
evgenijj
Отправлено: 03 Января, 2008 - 17:50:31
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Dastar пишет:
Такой вопрос, а если $data['name'] является массивом, то count() все равно будет равен одному?
Странный какой-то ворос. $row - массив. $row['data'] - значение одного из элементов массива. Т.е. скаляр - строка, число и т.п. Применение к ней функции count вообще некорректно. Что-то вроде "Взвесьте мне 5 километров апельсинов"
В общем случае любой из элементов массива тоже может быть массивом
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.