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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2020, 17:09   #1
Pavll
Пользователь
 
Регистрация: 03.11.2017
Сообщений: 24
По умолчанию В базу данных в поле вместо текста вставляются цифры.

Добрый день!
Делаю парсинг сайта.
Скрипт нормально работает, за исключением одного момента.
В базе данных есть поле comments. В это поле должны вводиться комментарии в виде текста. В одной из строк кода я пишу:
Код:
$comments = pq($topic)->find('ul.threadstats a')->text();
То есть, данные должны заносится в базу данных в виде текста, но они заносятся в виде чисел - количества комментариев, а не самих комментариев.
Почему так происходит?

Код скрипта:
Код:
<?php

require 'C:\OSPanel\vendor\autoload.php';

$host = 'localhost'; // адрес сервера
$database = 'mysite'; // имя базы данных
$user = 'root'; // имя пользователя
$password = ''; // пароль

// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));



$url = 'определённый сайт';

$message = '';

$mainPage = file_get_contents($url);
$pq = phpQuery::newDocument($mainPage);
$urlsRazdela= $pq->find('div.forumdata h2 a');
foreach($urlsRazdela as $elem){
    $urlRazdela = $url.pq($elem)->attr('href');
    $page = file_get_contents($urlRazdela);
    $pq = phpQuery::newDocument($page);
    $topics = $pq->find('li.threadbit');
    foreach($topics as $topic){
        $nameTopic = trim(pq($topic)->find('h3.threadtitle a')->text());
        $nameTopic = str_replace('\'','`',$nameTopic);
        $nameTopic = str_replace('\"','`',$nameTopic);
        $hrefTopic = $url.pq($topic)->find('h3.threadtitle a')->attr('href');
        $comments = pq($topic)->find('ul.threadstats a')->text();

//делаем проверку на новые темы
        $query="SELECT name FROM content6 WHERE name='".$nameTopic."'";
        $result= mysqli_query($link,$query);
        $data = mysqli_fetch_assoc($result);
        if(empty($data)){
$query = htmlspecialchars("INSERT INTO content6 SET name='".$nameTopic."', href='".$hrefTopic."', comments='".$comments."'");
           //$query = sprintf("INSERT INTO content6 SET name='%s', href='%s', comments='%s'",
               // mysqli_real_escape_string($nameTopic),
               // mysqli_real_escape_string($hrefTopic),
                //mysqli_real_escape_string($comments));
            mysqli_query($link,$query);
// и добавляем новую строчку в текст письма
            $message .= "Новая тема: ".$nameTopic."<br>";
        }
    }
}
//echo $message.'<hr>';
// отправим письмо
$headers ="Content-type:text/html;charset = utf-8 \r\n";
$headers .= "From: zzz@d0015161.atservers.net \r\n";
mail("xxxxxx@yandex.ru","Новые темы на форуме ",$message);
Pavll вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление текста в базу данных REztor Общие вопросы по программированию, компьютерный форум 0 02.04.2016 13:52
Почему при вводе данных в поле ListBox отображаются только цифры? Андрей3414 Microsoft Office Word 1 18.05.2015 07:56
Вместо русского текста символы - после переустановки Windows в файлах мусор вместо русских букв. МАРИННН Windows 14 13.10.2013 08:53
Как создать базу данных, для хранения текста... kostya_29 БД в Delphi 4 28.08.2011 21:43
мемо. вместо текста цифры maloun C++ Builder 5 02.02.2011 17:51