簡體   English   中英

PHP函數在for循環中僅被調用一次

[英]PHP Function is only called once in 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;
}

*編輯哇! 我找到了原因……我的功能中有一個從未使用過的功能。 我剛剛將其注釋掉,我的代碼運行正常。 無論如何,我認為這不是一個好主意。

我認為您的$ query錯誤。

更改此:

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

對於這樣的事情:

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

您的ID字段是否會自動遞增? 如果是這樣,則根本不需要“ field1”條目。

編碼愉快!

我也有這個問題。

我可以毫無問題地打印到表中,而我將循環中饋入到函數中的參數。 但是循環中的函數調用只會調用一次。

解決方案:刪除位置重定向和exit(); 從功能。

希望這對其他人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM