簡體   English   中英

當我想要更新多行時,MySQL只更新1行,而WHERE子句允許兩行都更新

[英]MySQL is only updating 1 row when I want it to update more than one, and the WHERE clause allows for both to be updated

因此,此請求的目的是獲取您已發送的好友請求,然后將其在好友請求表中的狀態設置為“ 1”,這表示該請求已收到但尚未答復。 這是代碼:

if (isset($_POST['username'])) {
    $username = $_POST['username'];
}
$statesent = 0;
$statepending = 1;

$connect = mysql_connect("localhost", "root". "");
mysql_select_db("TagDB");

$query = mysql_query("SELECT firstname, lastname, username FROM tagusers 
    INNER JOIN friendtable ON tagusers.username = friendtable.userA
    WHERE friendtable.userB = '$username' AND friendtable.state = '$statesent'");

while ($e = mysql_fetch_assoc($query)) {
    $output[] = $e;
}

$output = json_encode($output);

print $output;

$requestsgot = mysql_query("UPDATE friendtable SET state = '$statepending' WHERE (userB = '$username' AND state = '$statesent')");

這段代碼可以很好地檢索請求,但是只更新一行數據,其中userB列的值=用戶名POST,狀態=0。我有一個以上的設備可以滿足這兩個要求。 知道為什么只給我一個嗎? 我檢查了錯別字,沒有錯別字,而且,如果存在錯字,我將無法同時收到兩個請求(我確實要這樣做)。 令我什至感到奇怪的是,當我將請求從代碼底部移至中間,即$ query之后時,它將在我發布的位置更新其更新的另一行。 真奇怪 謝謝您的幫助。

替換UPDATE friendtable SET state = '$statepending' WHERE (userB = '$username' AND state = '$statesent')

SELECT * from friendtable WHERE (userB = '$username' AND state = '$statesent')

並查看返回了多少條記錄。

暫無
暫無

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

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