我确信此问题之前已被问过,但我无法提出正确的关键字(特别是英文版)。
我正在使用PHP,我试图循环一个函数的参数。因此应调用该函数,将检索到的数据存储在某些变量中,然后将这些变量插入到数据库中。
但是,循环只运行一次!如果我用任何数字替换$ id它可以正常工作,但只有一次。
这是我的代码的简化版本:
for ($i=0; $i<9; $i++) {
$id = $rows[$i][1];
$values = getDetails($id); // This function (from another file) returns an array
$title = $values["Title"];
$year = $values["Year"];
$query= " INSERT INTO database
VALUES ('','$title','$year')";
$result = $mysqli->query($query);
}
* 编辑这是getDetails函数的一部分:
function getDetails($id) {
$url = "http://www.something.de/". $id . "/";
$html = file_get_html ( $url );
$title = $html->find('span[itemprop=name]');
$title = explode('>',$title[0]);
$title = explode('</span',$title[1]);
... // This might look weird and is definatly not perfect, but it works :)
$details = array("Title" => $title[0], "Year" => $year[1]);
return $details;
}
* 编辑 哇!我找到了原因......我的功能中有一个从未使用过的功能。我只是评论它,我的代码工作得很好。无论如何,我认为这不是一个好主意。
答案 0 :(得分:0)
我认为您的$查询错误。
改变这个:
$query= " INSERT INTO database
VALUES ('','$title','$year')";
对于这样的事情:
$query= " INSERT INTO database (field1,field2,field3)
VALUES ('','$title','$year')";
您的ID字段是否自动增量?如果是这样,你根本不需要“field1”条目。
快乐的编码!
答案 1 :(得分:0)
我也有这个问题。
我可以打印到一张桌子而没有问题我在循环中输入一个函数的参数。但是循环中的函数调用只会调用一次。
解决方案:删除位置重定向和退出();从功能。
希望这有助于其他人。