2013-06-20 55 views
0

我有一个包含用户所选值的数组$列。用户值应该保存在数据库表中,这样下次用户不会被赋予他或她最后一次选择的值。乱?一点代码plz? OK:将查询结果与数组进行比较PHP

$columns= isset($_POST['column']) ? $_POST['column'] : array(); 
print_r($columns); 

这样选择的所有列得到值1,和其他的有0值。这给了我:

Array ([0] => 1 [1] => 1 [2] => 1 [4] => 1 [7] => 1) 

我有8组不同的列namned COLUMN1数据库表,column2,columnN .... 我想将数据库表与我的数组进行比较。知道要更新哪一列。现在我想:

while($row = mysql_fetch_array($result)) { 
    if($row['column'.$checks]!=1){ 
     //update table with values 
    } 
    } 

我应该比较我的数组$ row?或交集?我怎么能从我的数组中获取所需的值?

+2

** [请不要使用mysql_ *函数的新代码。(http://bit.ly/phpmsql)* *他们不再被维护,并[正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。请参阅** [红框](http://j.mp/Te9zIL)**?您可以使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli) - [本文](http://j.mp/QEx8IB)将帮你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 – jcsanyi

+0

谢谢!将着眼于它。 – Rocksteady

回答

0

为什么不把所有这些表合并成一个。

id | column_id | check 

这将使更新值轻松了许多

foreach ($columns as $column_id => $value) { 
    // UPDATE `table` SET check = {$value} WHERE column_id = {$column_id}; 
} 
+0

,但不会看起来像表(ID-> 1 column_id-> 1,2,3,6,7 check-> 1)或:)? – Rocksteady

+0

不!因为你正在遍历所有列ID并一次更新一个! – tlenss

+0

我已经更新了一下循环! – tlenss

相关问题