2015-09-04 68 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数据库,但我试图提供解决方案,可以与给定的选项一起工作,它可能被用作对问题的不同观点,甚至它不是“干净”的,它可能作为一个解决方案工作 –