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

Тема в разделе "PHP", создана пользователем Toha20072008, 22 янв 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Toha20072008

    Toha20072008

    Заблокирован
    Регистр.:
    17 фев 2008
    Сообщения:
    316
    Симпатии:
    50
    Как изменить выдачу из Базы Данных, меняя вручную вид запроса GET.
    Не знаю в тот ли раздел я запостил этот вопрос, и правильно ди его сформулировал.:)

    Моя задача вытащить от сюда
    http://prospect.dp.ua/buy.php?action=buy&ot=flat&price1=&price2=&rc1=&rc2=&area1=&area2=&floor1=&floor2=&d=&pg=2
    БД продаваемых квартир.

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

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

    Помогите :thenks:

    Или без точного знания движка (какая переменная, отвечающая за количество объяв на странице, передаётся и передаётся ли она вообще) - сделать этого нельзя?
     
  2. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    Либо методом перебора (&num=100 &kol=100 и т.д.). Либо зная параметры которые скрипт принемает. По другому никак.
     
  3. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.065
    Симпатии:
    197

    судя по всему это либо прописано в движке и нужно править в коде, либо в админке в настройках изменить количество предложений на странице. через гет вы ничего не поменяете.
     
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Нужно грабить и разбирать либо через 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){
     
    $fpfopen('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 . Результат будет в файле рядом.
    Если нужно что сделать с данными ещё- легко их изменить\отформатировать во время грабинга
     

    Вложения:

    Toha20072008 нравится это.
  5. Toha20072008

    Toha20072008

    Заблокирован
    Регистр.:
    17 фев 2008
    Сообщения:
    316
    Симпатии:
    50
    Когда запускаю с локалхоста граббит всё замечательно. Создаёт файл content.html и все данные складывает туда.
    Но на внешнем сервере не работает, файл content.html не создаёт, права на папку example поставил 777.
    KillDead - это скорее всего потому что в моём хостинг пакете не утановлен CURL? Или могут быть другие причины?
     
  6. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    Для начала вставьте в самое начало скрипта error_reporting(E_ALL);
    и посмотрите какие ошибки вылезут на хостинге
     
  7. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Библиотека simpledom использует функцию file_get_contents для получения страницы, а чтобы она работала, в пхп.ини должны быть разрешены внешние подключения. Если доступа к пхп.ини нет, то нужно использовать сокеты либо curl.
     
Статус темы:
Закрыта.