2015-09-04 241 views
0

我是PHP的新手。我有像這樣的數據:PHP MySQL - 通過數組更新數據

Array ([0] => Mr. ABC [1] => Ms. XYZ) 

而我試圖更新MySQL中具有相同ID的2行。我的代碼是:

$n = count($p_title); 
for ($i = 0; $i < $n; $i++) 
{     
    $query=("UPDATE table SET p_title='$p_title[$i]' WHERE q_no='$q_no'"); 
    $result=mysqli_query($link, $query) or die(mysqli_error($link)); 
} 

在更新這兩行時獲取數據「Ms. XYZ」。我在哪裏弄錯:(

+1

當然*雙向*行正在更新,在每個循環迭代更新*所有*行'WHERE Q_NO ='$ q_no''。你怎麼知道你想要哪個行有哪個值? 「2行如何具有相同的ID」?你會如何區分他們? –

+0

您需要每行都有唯一的內容(即行的唯一ID)才能將數據更新到相關行。 – Rehmat

+0

您的數據庫shema請求。主要關鍵是什麼?甚至沒有想到說你沒有一個! – inetphantom

回答

0

如果無法通過differenciate ID行,你可以試試這個

WHERE q_no='$q_no' LIMIT 1,$i 

限制包括:

  • 影響的行數
  • 查詢應

開始行的號碼,這一點不乾淨的解決方案......它可能工作思路

http://www.w3schools.com/php/php_mysql_select_limit.asp

+0

This * might *可以工作,但如果沒有'ORDER BY',則不能保證行的順序與您期望的一致。 –

+0

@Michael Bausano:'q_no ='$ q_no'LIMIT 1,$ i'給出SQL語法錯誤。 :( – Vikram

+0

@Vikram哦,那你必須'LIMIT 1,'。$ i。「'把變量放入字符串中 @RocketHazmat是的,這是真的,這不是很好的解決方案,如果可能的話,應該有一個唯一的ID數據庫,但我試圖提供解決方案,可以與給定的選項一起工作,它可能被用作對問題的不同觀點,甚至它不是「乾淨」的,它可能作爲一個解決方案工作 –