无法将foreach循环值插入mysql表

时间:2014-09-18 07:41:39

标签: php html mysql web-scraping

我从其他网站上截取日期,然后将所有提取值插入我的表格 sracp-data 。我的值成功插入,但只插入最后一个值。

我的获取值如下:

enter image description here

My Fetching Cood:我用于使用 SIMPLE HTML DOM

抓取数据
            include './simple_html_dom.php';       //Inlcude HTML DOM
            $html = file_get_html('http://tacticalwalls.com/shop/');  //Scrapping site/url
              //**ul[class=products] here is specific DIV values** 
            foreach ($html->find('ul[class=products]') as $items) {
                foreach ($items->find('a') as $anchor) {          
                    $item_a = $anchor->href;
                }
                foreach ($items->find('img') as $img){
                    $item_img = $img->src;
                }

                 $db_conn = mysql_connect('localhost', 'root', '') or die('error');
                    mysql_select_db('db_scrap', $db_conn) or die(mysql_error());

                    $sql = "INSERT INTO scrap_data(url, imges) VALUES ('".$item_a."', '".$item_img."')";

                    mysql_query($sql) or die(mysql_error()); 
                 }

我的问题是,如何将所有提取值插入到表格特定列中。喜欢< a>标签插入url列并且< img>标签值插入图像colunmn?

1 个答案:

答案 0 :(得分:0)

您总是在foreach中覆盖$ item_a和$ item_img。

你需要像

这样的东西
$items_a = array();
foreach($items->find('a') as $anchor) {
    array_push($items_a, $anchor->href)
}

同样适用于图像。最后,简单地破坏数组

$item_a = implode(';', $items_a);

你已经完成了。

        include './simple_html_dom.php';       //Inlcude HTML DOM
        $html = file_get_html('http://tacticalwalls.com/shop/');  //Scrapping site/url
          //**ul[class=products] here is specific DIV values** 
        foreach ($html->find('ul[class=products]') as $items) {
            $items_a = array();
            foreach ($items->find('a') as $anchor) {          
                array_push($items_a, $anchor->href);
            }
            $items_img = array();
            foreach ($items->find('img') as $img){
                array_push($items_img, $img->src);
            }
            $item_a = implode(';', $items_a);
            $item_img = implode(';', $items_img);
            $db_conn = mysql_connect('localhost', 'root', '') or die('error');
            mysql_select_db('db_scrap', $db_conn) or die(mysql_error());

            $sql = "INSERT INTO scrap_data(url, imges) VALUES ('".$item_a."', '".$item_img."')";

            mysql_query($sql) or die(mysql_error()); 
        }