Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在数组中循环向数据库传递值时出现问题_Mysql_Arrays_Loops - Fatal编程技术网

Mysql 在数组中循环向数据库传递值时出现问题

Mysql 在数组中循环向数据库传递值时出现问题,mysql,arrays,loops,Mysql,Arrays,Loops,首先,我需要提到我是新的编码,所以请记住这一点。我渴望学习,并且总是在提问前先查东西,这是我在这里的第一篇帖子 我试图做的是从我的数据库中提取URL列表,并获取要添加到数据库中的某些值。当我循环代码时,它会正确地获取所有内容并从每个url获取所有信息,但当需要将信息放入数据库时,它会反复写入数组的第一个值,而不是写入下一个值。示例:我有3个URL,它提取所有三个URL的信息 Array ( [0] => Array ( [title] => Data [prom

首先,我需要提到我是新的编码,所以请记住这一点。我渴望学习,并且总是在提问前先查东西,这是我在这里的第一篇帖子

我试图做的是从我的数据库中提取URL列表,并获取要添加到数据库中的某些值。当我循环代码时,它会正确地获取所有内容并从每个url获取所有信息,但当需要将信息放入数据库时,它会反复写入数组的第一个值,而不是写入下一个值。示例:我有3个URL,它提取所有三个URL的信息

Array
(
  [0] => Array
   (
   [title] => Data
   [promo] => Data
   [date] => Data
   [location] => Data
   )
  [1] => Array
   (
     [title] => Data
     [promo] => Data
     [date] => Data
     [location] => Data
   )
   [2] => Array
    (
     [title] => Data
     [promo] => Data
     [date] => Data
     [location] => Data
    )
 )
当我检查数据库时,第一个数据集在其中3次,第二个和第三个数据集被忽略。我附上下面的代码,希望有人能给我指出正确的方向

谢谢

include 'simple_html_dom.php';

$select_db = mysql_connect('******','*******', '');
$connect_database = mysql_select_db('grab', $select_db);
$url=mysql_query("SELECT * FROM graber");
while($row = mysql_fetch_array($url))
{
    // Create DOM from URL or file
    $html = file_get_html($row['urls']);

    // Find all article blocks
    foreach($html->find('div.event_detail') as $article)
    {
        $item['title'] =    $article->find('h1', 0)->plaintext;
        $item['promo'] =    $article->find('h2', 0)->plaintext;
        $item['date'] =     $article->find('div.authors_info span.date', 0)->plaintext;
        $item['location'] = $article->find('div.authors_info span.author', 0)->plaintext;
        $articles[] = $item;
    }

    $address=urlencode($articles[0]['location']);

    $geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$address.'&sensor=false');

    $output= json_decode($geocode);

    $lat = $output->results[0]->geometry->location->lat;
    $long = $output->results[0]->geometry->location->lng;

    $title = $articles[0]['title'];
    $location = $articles[0]['location'];
    $promo = $articles[0]['promo'];
    $olddate = $articles[0]['date'];
    $date = date('Y-m-d H:i:s', strtotime($olddate));
    $today = date('Y-m-d H:i:s');

    echo $lat.'<br />'.$long.'<br />'.$title.'<br />'.$location.'<br />'.$promo.'<br />'.$date.'<br /><br />';


            $dbc = mysqli_connect('********','*****','*******','*********')
            or die('Error I could not connect to DB');
            $query="INSERT INTO events(`id`,`parent`,`catid`,`contentid`,`type`,`title`,`location`,`summary`,`description`,`creator`,`startdate`,`enddate`,`permission`,`avatar`,`thumb`,`invitedcount`,`confirmedcount`,`declinedcount`,`maybecount`,`wallcount`,`ticket`,`allowinvite`,`created`,`hits`,`published`,`latitude`,`longitude`,`offset`,`allday`,`repeat`,`repeatend`)".
                    "VALUES('','0','1','0','profile','$title','$location','','$promo','24','$date','$date','0',NULL,NULL,'0','0','0','0','0','0','1','$today','0','1','$lat','$long','-6','1',NULL,'0000-00-00')";

            $results=mysqli_query($dbc,$query);

            echo mysqli_error($dbc);
}
 mysqli_close($dbc);

 mysql_close($select_db);
包括“simple_html_dom.php”;
$select_db=mysql_connect(“*******”、“*******”、“”);
$connect\u database=mysql\u select\u db('grab',$select\u db);
$url=mysql_查询(“从抓取程序中选择*);
while($row=mysql\u fetch\u数组($url))
{
//从URL或文件创建DOM
$html=file_get_html($row['url']);
//查找所有文章块
foreach($html->find('div.event_detail')作为$article)
{
$item['title']=$article->find('h1',0)->纯文本;
$item['promo']=$article->find('h2',0)->纯文本;
$item['date']=$article->find('div.authors\u info span.date',0)->纯文本;
$item['location']=$article->find('div.authors\u info span.author',0)->纯文本;
$articles[]=$item;
}
$address=urlencode($articles[0]['location']);
$geocode=文件\u获取\u内容('http://maps.google.com/maps/api/geocode/json?address=“.$address.”&sensor=false');
$output=json_decode($geocode);
$lat=$output->结果[0]->几何体->位置->lat;
$long=$output->results[0]->geometry->location->lng;
$title=$articles[0]['title'];
$location=$articles[0]['location'];
$promo=$articles[0]['promo'];
$olddate=$articles[0]['date'];
$date=date('Y-m-d H:i:s',strottime($olddate));
$today=日期('Y-m-d H:i:s');
回音$lat.
'.$long.
'.$title.
'.$location.
'.$promo.
'.$date.
; $dbc=mysqli_connect(“*******”、“****”、“*******”、“*******”、“*******”) 或者死亡(“错误,我无法连接到DB”); $query=“插入到事件中”(`id`、`parent`、`catid`、`contentid`、`type`、`location`、`summary`、`description`、`creator`、`startdate`、`enddate`、`permission`、`avatar`、`thumb`、`InvestedCount`、`confirmedcount`、`declinedcount`、`Maybeccount`、`wallcount`、`allowinvite`、`created`、`hits`、published`、Latituditude`、`latitude`、offset`、allday`、`repeat`、`repeatend`)。 “值(“”,'0','1','0','profile','title','location','promo','24','date','date','date','0','NULL,NULL,'0','0','0','0','1','0','1','today','0','1','lat','long','6','1','NULL,'0000-00'); $results=mysqli_查询($dbc,$query); echo mysqli_错误($dbc); } mysqli_close($dbc); mysql\u close($select\u db);
不是php专家,但似乎您正在对数组的第一个维度进行硬编码以选择第一个元素。 例如
$address=urlencode($articles[0]['location']);
应该是这样的:

$address=urlencode($articles[variable]['location']);

因此,每次需要插入数据库时,检索到的值都是不同的。

Mayank,我理解您的意思,但不确定如何实现。使用[variable]你是说它应该是一个$variable还是…我想我从foreach语句中移到了大部分代码,创建了一些不必要的代码。我正在尝试压缩它,看看会发生什么。谢谢你的输入。我找到了它。我通过删除不必要的步骤简化了代码,它工作起来很有魅力。是的,我的意思是nt不是使用硬编码的维度来访问数组中的值,而是需要它是一个增量变量(正如您所说的$variable,它的值在每次运行循环时都会增加1)。很高兴您找到了它