所以基本上我想要做的是對于查詢生成的每一行,我嘗試生成一個 URL 并訪問該 URL。有趣的是,它總是只訪問第一個生成的 URL,從不訪問其他 URL。
我究竟做錯了什么?請幫我。
$query = "SELECT distinct b.productname, b.seller, b.price, b.offerid
from tracker b";
$results = mysqli_query($dbcon, $query);
$rows = array();
$i = 0;
while ($row = mysqli_fetch_assoc($results)) {
$rows[] = $row;
foreach ($rows as $row) {
$url = 'url'.$i;
$$url = 'https://bla.com/tools/tracker.php?productID=' .
$row["productname"] . '&verkoper=' .
$row["seller"] . '&offerid=' .
$row["offerid"] . '&price=' . $row["price"] .
'&productTracken=';
// set URL and other appropriate options
file_get_contents($$url);
$i ;
}
}
uj5u.com熱心網友回復:
如果你簡化你正在做的事情,你可能會得到你想要的結果
您似乎所做的只是觸摸從表中的資料構建的 url 串列
此外,您不需要 while 回圈和 foreach 回圈,這絕對是導致您出現問題的原因。
$query = "SELECT distinct b.productname, b.seller, b.price, b.offerid
from tracker b";
$results = $dbcon->query($query);
while ($row = $results->fetch_assoc()) {
$url = 'https://bla.com/tools/tracker.php?productID=' .
$row["productname"] . '&verkoper=' .
$row["seller"] . '&offerid=' .
$row["offerid"] . '&price=' . $row["price"] .
'&productTracken=';
// set URL and other appropriate options
file_get_contents($url);
}
uj5u.com熱心網友回復:
你在這里發生了一些奇怪的事情。
首先,你的回圈:
while ($row = mysqli_fetch_assoc($results)) {
$rows[] = $row;
foreach ($rows as $row) {
每次從資料庫中獲取一行時,都會將其添加到一個陣列中。然后立即回圈遍歷該陣列中的所有專案。如果你每次輸出一個行號,你會得到 0;然后 0, 1; 然后 0, 1, 2; 等等。
其次,您的 URL 變數:
$url = 'url'.$i;
$$url = 'https://...';
這使用了 PHP 的一個名為變數變數的深奧特性:您可以動態選擇所需的變數名稱。基本上這個功能永遠需要的,因為它幾乎總是更好的使用陣列:
$urls[$i] = 'https://...';
但是,在這種情況下,您一次只使用一個值,因此您可以只使用一個普通的舊變數:
$url = 'https://...';
修復這些會為您提供RiggsFolly's answer 中的代碼,并且可能會解決您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/370173.html
