Как изменить выдачу из БД, меняя вручную запрос GET

Статус
В этой теме нельзя размещать новые ответы.

Toha20072008

Профессор
Заблокирован
Регистрация
17 Фев 2008
Сообщения
314
Реакции
48
  • Автор темы
  • Заблокирован
  • #1
Как изменить выдачу из Базы Данных, меняя вручную вид запроса GET.
Не знаю в тот ли раздел я запостил этот вопрос, и правильно ди его сформулировал.:)

Моя задача вытащить от сюда

БД продаваемых квартир.

Скрипт извлекает из БД 10-строк на страницу, мне нужно изменить что-то (что?) в запросе GET:
/buy.php?action=buy&ot=flat&price1=&price2=&rc1=&rc2=&area1=&area2=&floor1=&floor2=&d=&pg=2
что бы из БД выгружалось не 10-ть а 100 или 200 строк.

Как это сделать, как узнать что именно нужно изменить?
Может нужно сперва понять что за движок стоит на сайте и к каким полям в БД это скрпи обращается..

Помогите :thenks:

Или без точного знания движка (какая переменная, отвечающая за количество объяв на странице, передаётся и передаётся ли она вообще) - сделать этого нельзя?
 
Либо методом перебора (&num=100 &kol=100 и т.д.). Либо зная параметры которые скрипт принемает. По другому никак.
 
  • Заблокирован
  • #3
Как изменить выдачу из Базы Данных, меняя вручную вид запроса GET.
Не знаю в тот ли раздел я запостил этот вопрос, и правильно ди его сформулировал.:)
Моя задача вытащить от сюда
*** скрытое содержание ***
БД продаваемых квартир.
Скрипт извлекает из БД 10-строк на страницу, мне нужно изменить что-то (что?) в запросе GET:
/buy.php?action=buy&ot=flat&price1=&price2=&rc1=&rc2=&area1=&area2=&floor1=&floor2=&d=&pg=2
что бы из БД выгружалось не 10-ть а 100 или 200 строк.
Как это сделать, как узнать что именно нужно изменить?
Может нужно сперва понять что за движок стоит на сайте и к каким полям в БД это скрпи обращается..
Помогите :thenks:
Или без точного знания движка (какая переменная, отвечающая за количество объяв на странице, передаётся и передаётся ли она вообще) - сделать этого нельзя?


судя по всему это либо прописано в движке и нужно править в коде, либо в админке в настройках изменить количество предложений на странице. через гет вы ничего не поменяете.
 
Нужно грабить и разбирать либо через preg либо через dom. Сделал через второе (файл в папке example:(
PHP:
include_once('../simple_html_dom.php');
$START_PAGE =1;
$END_PAGE =3;
for($str_i=$START_PAGE; $str_i < $END_PAGE; ++$str_i){
 $fp= fopen('content.html', 'a'); 
 $content = '';
 $html = file_get_html('http://prospect.dp.ua/buy.php?action=buy&ot=flat&price1=&price2=&rc1=&rc2=&area1=&area2=&floor1=&floor2=&d=&pg='.$str_i);
 $i=0;
 foreach($html->find('form[name=orderForm] table.block tr') as $table){
  if(substr_count($table, '<img class="present"')){
   $content .= $table;  
  }
  ++$i;
 }
 
 echo "str:<b> $str_i</b> <br />\n";
 
 fwrite($fp, $content); 
 fclose($fp);
}
Заменяешь $END_PAGE =3 на нужный номер страницы до которой грабить. Если надо не с 1-й то изменяешь (напр скрипт повиснет) $START_PAGE . Результат будет в файле рядом.
Если нужно что сделать с данными ещё- легко их изменить\отформатировать во время грабинга
 

Вложения

  • simplehtmldom.zip
    119,2 KB · Просмотры: 5
  • Автор темы
  • Заблокирован
  • #5
Когда запускаю с локалхоста граббит всё замечательно. Создаёт файл content.html и все данные складывает туда.
Но на внешнем сервере не работает, файл content.html не создаёт, права на папку example поставил 777.
KillDead - это скорее всего потому что в моём хостинг пакете не утановлен CURL? Или могут быть другие причины?
 
Для начала вставьте в самое начало скрипта error_reporting(E_ALL);
и посмотрите какие ошибки вылезут на хостинге
 
Когда запускаю с локалхоста граббит всё замечательно. Создаёт файл content.html и все данные складывает туда.
Но на внешнем сервере не работает, файл content.html не создаёт, права на папку example поставил 777.
KillDead - это скорее всего потому что в моём хостинг пакете не утановлен CURL? Или могут быть другие причины?
Библиотека simpledom использует функцию file_get_contents для получения страницы, а чтобы она работала, в пхп.ини должны быть разрешены внешние подключения. Если доступа к пхп.ини нет, то нужно использовать сокеты либо curl.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху