PHP函数仅在for循环中调用一次

时间:2014-06-04 17:45:53

标签: php function for-loop

我确信此问题之前已被问过,但我无法提出正确的关键字(特别是英文版)。

我正在使用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;
}

* 编辑 哇!我找到了原因......我的功能中有一个从未使用过的功能。我只是评论它,我的代码工作得很好。无论如何,我认为这不是一个好主意。

2 个答案:

答案 0 :(得分:0)

我认为您的$查询错误。

改变这个:

$query=  " INSERT INTO database
        VALUES ('','$title','$year')";

对于这样的事情:

$query=  " INSERT INTO database (field1,field2,field3)
        VALUES ('','$title','$year')";

您的ID字段是否自动增量?如果是这样,你根本不需要“field1”条目。

快乐的编码!

答案 1 :(得分:0)

我也有这个问题。

我可以打印到一张桌子而没有问题我在循环中输入一个函数的参数。但是循环中的函数调用只会调用一次。

解决方案:删除位置重定向和退出();从功能。

希望这有助于其他人。