Вопросы по php

Тема в разделе "Другие", создана пользователем heyner, 1 май 2017.

Метки:
  1. heyner

    heyner Участник

    25 янв 2016
    218
    43
    Собственно сабж. Написал парсер, но вот не пойму как передать данные в базу данных.
    Может кто подскажет?
    Код:
    <?php
    //подгружаем библиотеку
    require 'simple_html_dom.php';
    //создаём новый объект
    $html = new simple_html_dom();
    //загружаем в него данные
    $html = file_get_html('http://zloi.kz/blog/show/8.html');
    $headlines = array();
    foreach($html->find('h1') as $header) {
    $headlines[] = $header->plaintext;
    }
    print_r($headlines);
    //освобождаем ресурсы
    $html->clear();
    unset($html);
    ?>
    
    По факту имеем значение в массиве как его в базу запихнуть.
    Просто представим обычную базу данных где всего 2 строчки. Эт овсе сугубо для теста. Просто получили значение и его нужно записать из массива в определенную ячеку. Название ячей придумайте любой.. я потом свое поставлю.
    п.с. учу пхп для парсинга.
     
  2. amness

    amness Активный Участник

    11 апр 2016
    240
    83
    Мужской
    Какую обычную:D? Они все обычные, вот только библиотеки разные используют и синтаксис. Ты сначало с типом базы определись и потом гугли:
    "php данные в базу {mysql|sqlite|postgresql|или что там ещё}"
     
    heyner нравится это.
  3. instafx7

    instafx7 Участник

    28 янв 2017
    34
    6
    Мужской
    а без вот этого Г..
    можно было ответить?
    как же бесят такие вот"свядомыя"
     
  4. Валентин

    Валентин Новичок

    20 апр 2017
    1
    1
    Мужской
    Так ответили же)
    Сначала тебе надо определиться c субд, которую будешь использовать.
    Например, mysql.
    Потом создать бд. На хостинге. Подключить эту бд в коде. И только потом в нужную таблицу вставлять данные.
    Или о чем вопрос-то?
     
    heyner нравится это.
  5. heyner

    heyner Участник

    25 янв 2016
    218
    43
    #5 heyner, 5 май 2017
    Последнее редактирование: 5 май 2017
    Да mysql создал. Обычную я имел ввиду такую:
    [​IMG] [​IMG]
    мой код:
    Код:
    <html>
        <head>
            <meta name="author" content="Kai Oswald Seidler, Kay Vogelgesang, Carsten Wiedmann">
            <title></title>
        </head>
        <?php
        $db_host="localhost";
        $user="1sergey";
        $pass="JBf8vMnXCq2cfUL4"; //установленный вами пароль
        $db_name="braz";
        $link = mysqli_connect($db_host, $user, $pass, $db_name)
        or die("Ошибка " . mysqli_error($link));
    ?>
        <body>
            <?php
            require 'simple_html_dom.php';
    //подгружаем библиотеку
    
    //создаём новый объект
    $html = new simple_html_dom();
    //загружаем в него данные
    $html = file_get_html('http://vse-diety.com/yaponskaya-dieta.html');
    $headlines = array();
    foreach($html->find('h1') as $header) {
    $headlines[] = $header->plaintext;
    }
    print_r($headlines);
    {
      $res = mysql_query('INSERT INTO my_table marka (model) VALUES("' . mysql_real_escape_string($header->plaintext) . '")');
            if (!$res) die(mysql_error());
    }
    
    
    mysql_close($c);
    unset($html);
    
    $html->clear();
    unset($html);
    
    ?>
    
    <?php
    
    //освобождаем ресурсы
    
    ?>
        </body>
    </html>
    
    По пробуйте на локале запустить, не пишет в базу.
    В браузере вот такая хрень:
    Код:
    Array ( [0] => Японская диета - потеря веса до 8 килограмм за 13 дней [1] => Меню японской диеты (на 13 дней) [2] => Достоинства японской диеты [3] => Минусы японской диеты [4] => Отзывы ) No database selected
     
  6. realefs

    realefs Новичок

    1 май 2017
    8
    1
    так русским по белому же ругается. база не выбрана.

    Код:
    $db = mysql_connect("localhost", "user", "pass");
    mysql_select_db("my_db");
    в этой строке хрень
    Код:
    $res = mysql_query('INSERT INTO my_table marka (model) VALUES("' . mysql_real_escape_string($header->plaintext) . '")');
    
    зачем там "my_table"? у вас таблица называется marka
    должно быть
    Код:
    INSERT INTO %название_таблицы% (%название_поля%) VALUES ('%данные%')
     
  7. heyner

    heyner Участник

    25 янв 2016
    218
    43
    Разве не так подключают БД?
    Код:
        <?php
        $db_host="localhost";
        $user="1sergey";
        $pass="JBf8vMnXCq2cfUL4"; //установленный вами пароль
        $db_name="braz";
        $link = mysqli_connect($db_host, $user, $pass, $db_name)
         or die("Ошибка " . mysqli_error($link));
    ?>
     
  8. realefs

    realefs Новичок

    1 май 2017
    8
    1
    одну и туже вещь, на похапе можно сделать по разному.
    вы например используете очень громоздкий вариант, сначала объявляете переменные, присваиваете им значения и только потом подключаетесь к бд, используя все эти данные.
    я продемонстрировал короткую запись, этого же действия (ну и слегка устаревшего).
     
    heyner нравится это.
  9. heyner

    heyner Участник

    25 янв 2016
    218
    43
    Ваш вариант прокатил! Спасибо.