gpt4 book ai didi

mysql - 无法通过数组循环将值传递给数据库

转载 作者:行者123 更新时间:2023-11-29 03:41:50 26 4
gpt4 key购买 nike

首先,我需要说明我是编码新手,所以请记住这一点。我渴望学习,并且在提问之前总是尝试查找内容,这是我在这里发表的第一篇文章。

我想做的是从我的数据库中提取一个 url 列表,并获取要添加到我的数据库中的某些值。当我遍历代码时,它会正确获取所有内容并从每个 url 获取所有信息,但是当需要将信息放入数据库时​​,它会一遍又一遍地写入数组的第一个值,而不是写入下一个值。示例:我有 3 个 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);

最佳答案

不是 php 专家,但您似乎正在对数组的第一个维度进行硬编码以选择第一个元素。例如$address=urlencode($articles[0]['location']);应该是这样的:

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

所以每次你需要插入数据库时​​,检索到的值都是不同的。

关于mysql - 无法通过数组循环将值传递给数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12994875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com