我有那个简单的PHP代码:
$sql= 'SELECT ID, fb_postid, scheduled FROM `posts` WHERE clicks = "" AND fb_postid !="" AND scheduled < NOW() order by ID ASC LIMIT 10;';
$result = mysqli_query($link, $sql);
print_r($result);
while ($row = mysqli_fetch_assoc($result)) {
$clicks=fbcall($fbtoken, $row['fb_postid']);
$update="UPDATE `posts` SET `clicks`='".$clicks."' WHERE id='".$row['ID']."'";
$result = mysqli_query($link, $update);
print("POSTID: " . $row['fb_postid'] . " - Clicks: " . $clicks ."<br>");
};
MYSQL SELECT通过While循环中的行从DB循环中获取10行,从函数fbcall获取“click”,然后使用“click”到db的值更新所有10行。如果我运行没有更新的代码我得到10个结果打印但如果我运行mysqli_update我只是更新1行。有人知道为什么?
答案 0 :(得分:1)
您正在使用$result
变量来迭代第一个查询中的行列表。
但是你在循环中给$ result一个新值,清除那里的任何东西。
只需使用两个不同的变量,你就可以了。尝试这样的事情:
$sql= 'SELECT ID, fb_postid, scheduled FROM `posts` WHERE clicks = "" AND fb_postid !="" AND scheduled < NOW() order by ID ASC LIMIT 10;';
$result = mysqli_query($link, $sql);
print_r($result);
while ($row = mysqli_fetch_assoc($result)) {
$clicks=fbcall($fbtoken, $row['fb_postid']);
$update="UPDATE `posts` SET `clicks`='".$clicks."' WHERE id='".$row['ID']."'";
$result2 = mysqli_query($link, $update);
print("POSTID: " . $row['fb_postid'] . " - Clicks: " . $clicks ."<br>");
};
答案 1 :(得分:0)
修复它并使用准备好的更新语句构建:
if (window.innerHeight != windowExpectedSize){ ... }