• Как сохранить спарсенные данные в базу данных?

    @nikitinandrey1990 Автор вопроса
    PeterKravets, еще и ошибки поползли... в общем вы меня только еще больше запутали(( Сначала один код, потом второй.. и что куда подставлять, фиг поймешь...
  • Как сохранить спарсенные данные в базу данных?

    @nikitinandrey1990 Автор вопроса
    nikitinandrey1990, (' . $tobd['name'] . ', ' . $tobd['content'] . ') на цифры, все добавилось...
  • Как сохранить спарсенные данные в базу данных?

    @nikitinandrey1990 Автор вопроса
    PeterKravets, Все равно ничего не добавляется...
  • Как сохранить спарсенные данные в базу данных?

    @nikitinandrey1990 Автор вопроса
    db.php
    $link = mysqli_connect('localhost', 'root', '', 'sport');
    
        if (!$link) {
            die('Ошибка подключения (' . mysqli_connect_errno() . ') '
                . mysqli_connect_error());
        }
    
       mysqli_close($link);


    ну пока просто пытаюсь хоть что то добавить, информацию с сайтов брал..

    require_once ('lib/simple_html_dom.php');
    require_once ('lib/phpQuery.php');
    require_once ('lib/curl_query.php');
    require ('lib/db.php');
    
            $html = curl_get('имя сайта');
            $dom = str_get_html($html);
    
            $news = $dom->find('.soc-news li');
    
            foreach ($news as $new)
            {
                $tobd = array();
    
                $a = $new->find('a', 0);
                $tobd['name'] = $a->plaintext;
    
                $one = curl_get('имя сайта' . $a->href);
                $one_dom = str_get_html($one);
    
                $content = $one_dom->find('.content', 0);
                $tobd['content'] = $content->plaintext;
    
    
                $query = "INSERT INTO `pro` SET name = '5', content = '7'";
                if($query)
                {
                    echo 'Запись добавленна';
                }
                else
                {
                    echo 'Ошибка добавления';
                }
    
    //            echo '<pre>';
    //            print_r($tobd);
    //            echo '</pre>';
    
    
                break;
            }


    проверку на ошибки проходит, пишет что добавлена, но на самом деле ничего не меняется в бд
  • Как сохранить спарсенные данные в базу данных?

    @nikitinandrey1990 Автор вопроса
    Спасибо за ответ, но PDO я пока не хочу изучать. Мне бы с данным примером разобраться, с простым MySqli, и как тут сделать сохранение массива в ДБ.. Уже все перепробовал, нигде нету объяснений, вообще. Запрос в PHPMyAdmin работает корректно и добавляет записи, а вот из файла не робит, может что то упустил, как всегда бывает...
  • Как сохранить спарсенные данные в базу данных?

    @nikitinandrey1990 Автор вопроса
    А где там объяснения? Нормальные?
  • Подключение php библиотеки в Yii2?

    @nikitinandrey1990
    Добрый день, не подскажете, как через компосер установить simple_html_dom, и библиотеку cURL. Что то нигде найти не могу
  • Как с помощью yii2 спарсить блок новостей на стороннем сайте?

    @nikitinandrey1990 Автор вопроса
    Максим Осадчий @iphone_fans_ru
    Если цель получить просто информацию из блоков - может нет надобности тянуть yii? Записать в массив ссылки на страницы - пройтись по ним - вытащить нужную инфу и сохранить - это три шага, которые в одном файле в процедурном стиле пишется за час


    Спасибо за ответ. Тоже думал. Но тогда смысл от yii2? Сайт то на нем делаю. Или я что то не правильно понимаю? Просто у меня уже есть выборка из базы, которая находится в контролерах и моделях, задача была такая, чтобы вытащить новости с сайта, сохранить в эту бд, а дальше уже будет работать та выгрузка.

    Максим Осадчий @iphone_fans_ru
    yii призван ускорить разработку, но в данном случае, имхо, только затянет, я обычно беру какую-то библиотеку, быстро прохожу глазами по сайту, если есть sitemap.xml - идеально, нет - беру все ссылки всех нужных страниц, записываю их в массив, если сильно много - в файл, потом прохожу по ним, беру все, что надо и на этом все, зачем писать модели, контроллеры, разносить по файлам логику, если задача примитивная?


    Хорошо, спасибо, я подумаю об этом. Попробую совместить все это дело. Еще раз спасибо за ответ
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    slo_nik, Ну я такой человек, пока сам не пойму все. делать не буду) Потом же мне возвращаться придется к коду, все выветрится из головы, и все, опять по новой придется искать, учить)
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    slo_nik,
    nikitinandrey1990, а что там разбираться-то?)))

    Ну вы все это знаете, а мне до этого еще...))
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    slo_nik, хорошо, спасибо, просто по урокам делал. Учусь еще
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    slo_nik, Ух... Спасибо, попробую разобраться в этом))
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    slo_nik, Если я правильно понял, то вот.

    В CategoryController

    public function actionView($id)
        {
            $id = Yii::$app->request->get('id');
            $news = News::find()->where(['category_id' => $id])->all();
            $clubs = Club::find()->where(['category_id' => $id])->all();
    
            $category = Category::findOne($id);
            $this->setMeta('SPORT | ' . $category->name, $category->keywords, $category->description);
    
            return $this->render('view', compact('news', 'clubs', 'category'));
        }
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    Добрый день! Извините за беспокойство. Еще один вопрос у меня возник, вчера вы мне помогли. направили на нужный путь, хотел бы еще к вам обраться.

    Проблема такая, не могу никак понять, как обработать вывод ошибок через if else.

    Нужно сделать так, если нажимаю на новости, то выходили $news, если их нет, от else нет новостей. Все работает с одним условием, но у меня ведь и команды на этой же вьюхе выводятся, и если добавлять условие , если нажимаю на команды, то выводятся $clubs иначе else нет команд, и вот тут возникает проблема, либо обработка вообще не выводится, либо выводится одна, с новостями, где нет новостей, и где есть команды, над командами

    Код немного переработал, работает все, но без вывода текста об отсутствие команд либо новостей
    <?php if(!empty($news)): ?>
                <?php foreach ($news as $new): ?>
                    <h1><?= $new->name ?></h1>
                    <p><?= $new->content ?></p>
                <?php endforeach; ?>
            <?php else: ?>
                <?php if(!empty($clubs)): ?>
                    <?php foreach ($clubs as $club): ?>
                        <h1><?= $club->name ?></h1>
                    <?php endforeach; ?>
                <?php endif; ?>
            <?php endif; ?>


    Я понимаю, что нужно что то еще проверить, а что, не доходит никак.
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    slo_nik, Все, сделал вроде) Спасибо что направили в нужное русло) Мне нужно было чтобы просто эти 2 команды вывелись из таблицы club, которые привязаны в категории РФПЛ. Если вам важна отметка "правильный ответ", напишите в ответы на вопрос, первые сообщения в этих комментах, я отмечу!) Еще раз спасибо!
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    slo_nik,
    В CategoryController
    <?php
    /**
     * Created by PhpStorm.
     * User: Computer
     * Date: 06.12.2017
     * Time: 20:34
     */
    
    namespace app\controllers;
    
    use app\models\Category;
    use app\models\News;
    use app\models\Club;
    use Yii;
    
    
    class CategoryController extends AppController
    {
        public function actionIndex()
        {
            $news = News::find()->all();
            return $this->render('index', compact('news'));
        }
    
        public function actionView($id)
        {
            $id = Yii::$app->request->get('id');
            $news = News::find()->where(['category_id' => $id])->all();
            return $this->render('view', compact('news'));
        }
    
        public function actionClub($id)
        {
            $id = Yii::$app->request->get('id');
            $clubs = Club::find()->where(['category_id' => $id])->all();
            return $this->render('club', compact('clubs'));
        }
    
    }


    в models\Category
    <?php
    /**
     * Created by PhpStorm.
     * User: Computer
     * Date: 06.12.2017
     * Time: 12:35
     */
    
    namespace app\models;
    
    use yii\db\ActiveRecord;
    
    class Category extends ActiveRecord
    {
        public static function tableName()
        {
            return 'category';
        }
    
        public function getNews()
        {
            return $this->hasMany(News::className(), ['category_id' => 'id']);
        }
    
        public function getClub()
        {
            return $this->hasMany(Club::className(), ['category_id' => 'id']);
        }
    
    }


    Дальше создал новый вид club и в нем:
    <?php
    
    /* @var $this yii\web\View */
    use yii\helpers\Html;
    
    $this->title = 'My Yii Application';
    ?>
    
    <?php
    
    /* @var $this yii\web\View */
    
    $this->title = 'My Yii Application';
    ?>
    
    <div class="wrap">
        <div class="leftmenu">
            <ul class="catalog category-products">
                <?= \app\components\MenuWidget::widget(['tpl' => 'menu']); ?>
            </ul>
        </div>
    
        <div class="content">
            <h2>Новости спорта</h2>
            <?php if(!empty($clubs)): ?>
                <?php foreach ($clubs as $club): ?>
                    <h1><?= $club->name ?></h1>
                <?php endforeach; ?>
            <?php else: ?>
                <h2>Новостей нет</h2>
            <?php endif; ?>
        </div>
    </div>


    Я наверное не так это все понимаю... Просто правда не понимаю как это все сделать.... Извините за мою тупость
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    davidnum95, Ну если вы понимаете, я за вас рад! Если можете нормально помочь, говорите, нет, не нужно встревать и отнимать мне и себе время
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    Спасибо, обязательно посмотрю, надеюсь поможет. А то весь день мучаюсь...
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    slo_nik, Ну если я правильно понял, то уже делал так, не работало. Видимо не так что то делал. Спасибо, посмотрю
  • Как связать 2 таблицы из БД с одной в yii2?

    @nikitinandrey1990 Автор вопроса
    Я попросил разжевать, а не давать документацию! 1) там ничего не понятно. 2) для новичков она не подходит