Тема: Вопросы связанные с БД при парсинге сайта

Добрый времени суток, Hanut!!! Очень благодарен Вам в оказаной давным давно мне помощи, когда я только начинал изучать php и mysql. Придумал пару интересных порталов, возникли проблемы c БД  и php. Если Вы мне поможете буду очень Вам благодарен...
1.  Я обычно использую метод хранения в ячейке таблицы БД пути к графическому файлу и в php через echo вывожу тэг img со значением ячейки. Но возникла необходимость хранения именно самого файла в ячейке, если я правильно понимаю ячейке необходимо задать тип данных BLOB, но при внесении данных в БД он пишет что есть данные BLOB размер файла 4 байта, но при выводе из БД выдает NULL. Каким образом в ячейке таблицы БД можно хранить графические файлы?
2.  Каким образом в одной ячейке таблицы БД можно хранить несколько изображений, к примеру 5 изображений и по очередно выводить их на страницу? Я конечно понимаю что используются массивы, но каким образом не могу разобраться.
3. Написал парсинг объявлений с авито, никак не могу получить номер телефона и внести его в БД. Пытался написать автокликера по кнопке "показать телефон" и на сгенерированной странице через dom модель получить саму картинку с номером телефона, не вышло. Пользуюсь curl и simple_html_dom. Самое неприятное то что в url не заносятся данные при нажатии кнопки. Я так понимаю что это организовано на JS, но при изучении полного кода страницы так ничего и не нашел, кроме того что адрес карттинки при каждом входе на страницу генерируется разный.  Не подскажете каким образом это можно сделать?
Заранее благодарен, мне действительно это важно, и чтобы Вы ничего плохого не подумали, парсинг я пишу не в корыстных целях.

2

Re: Вопросы связанные с БД при парсинге сайта

Кстати, про авито пытался парсить с мобильной версии, там номер телефона открыт и прописан как текст, а не картинка. Но мобильная версия вообще не пожелала парситься.

3

Re: Вопросы связанные с БД при парсинге сайта

Картинка не может быть 4 байта.

Тип BLOB - правильно выбран. Кроме данных, потребуется хранить заголовок с типом данных, чтобы можно было их выводить на страницу. Примеры по хранению картинки в MySQL поищите в сети, их много.

В одной ячейке можно хранить только один файл. Для хранения нескольких файлов потребуется связанная таблица.

По парсингу помочь не могу. К сожалению нет времени.

ВКонтакте Facebook Twitter

4

Re: Вопросы связанные с БД при парсинге сайта

Спасибо большое hanut, про хранение нескольких файлов я понял, как всегда все намного проще чем я думал. Единственное что я не могу понять, то что количество картинок точно не известно и каким образом тогда делать связаные таблицы.
Про тип BLOB почитаю спасибо!

5

Re: Вопросы связанные с БД при парсинге сайта

Сделайте отдельную таблицу для хранения картинок с полями: Идентификатор таблицы, идентификатор записи (связать с основной таблицей), данные BLOB, тип заголовка в текстовом виде. По идентификатору записи можно записывать и выбирать любое количество картинок.

ВКонтакте Facebook Twitter

6

Re: Вопросы связанные с БД при парсинге сайта

спасибо, как я сам не догодался)

7

Re: Вопросы связанные с БД при парсинге сайта

Hanut, доброго времени суток, нарвался еще на одну проблему, из БД вывожу в табличном виде данные на страницу, в каждой строке таблицы есть кнопка "опубликовать", каким образом можно сделать так, чтобы при нажатии на данную кнопку именно эта строка публиковалась на другой странице?

8

Re: Вопросы связанные с БД при парсинге сайта

На кнопку повесьте передачу идентификатора строки и на специальной странице уже выводите нужные данные.

ВКонтакте Facebook Twitter

9

Re: Вопросы связанные с БД при парсинге сайта

В том то и проблема что я так и делаю, а он мне ошибку выдает \

Warning: mysql_query() [http://www.mysql.com/doc]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM ava_moderated_object WHERE id='2'' at line 1 in Z:\home\ava.loc\www\admin\public.php on line 27
failedYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM ava_moderated_object WHERE id='2'' at line 1

10

Re: Вопросы связанные с БД при парсинге сайта

суть в том что я понимаю что где то в SQL запросе косяк с кавычками, но я его в упор не вижу, вот запрос

$mysql_query = ("INSERT FROM ava_moderated_object WHERE id='$id'");

а вот весь фрагмент кода

if (isset($_GET['pub'])) {
        $id = $_GET['pub'];
        $mysql_query = ("INSERT FROM ava_moderated_object WHERE id='$id'");
        $res= mysql_query($mysql_query) or die ("failed". mysql_error());
        echo "<meta http-equiv='refresh' content='0;url=index.php' >";
}
mysql_query($mysql_query);

а вот сам код ссылки

<a href='public.php?pub=$id'><span class='glyphicon glyphicon-ok' title='опубликовать'></span></a>

Отредактировано artbolnix39 (2016-09-28 00:05:01)

11

Re: Вопросы связанные с БД при парсинге сайта

Для выбора данных используйте запрос SELECT, а не INSERT.

ВКонтакте Facebook Twitter

12

Re: Вопросы связанные с БД при парсинге сайта

так мне эти данные необходимо внести в БД

13

Re: Вопросы связанные с БД при парсинге сайта

Как записать запрос вставки данных смотрите здесь. http://dev.mysql.com/doc/refman/5.7/en/insert.html

ВКонтакте Facebook Twitter