2011-11-22 102 views
0

我有一个数组,其中包含数字“331,554,22”或它可能是“45”,可以说数组被称为$numbersPHP循环通过一个数组

我遍历数组,并为它的每个号码或入境要循环,不喜欢

UPDATE members SET x=1 where id=$numbers[x] 

一个SQL查询可以有人帮助我一起去吗?

更新:另外,说我将查询值存储在我的数据库中的文本字段中,名为nums,它看起来像例如。 “45,656,23”,我将如何将其转换为数组格式?

+1

“331,554,22” - 这是一个真正的阵列,或者是它由逗号分隔的一串数字?如果是后者,则需要先“爆炸()”,然后才能有数组。 只是问。 –

+0

它的一个字符串,所以,我猜是爆炸。 – user1022585

回答

2

如果veriable "331,554,22"不是一个数组(字符串), 爆炸它首先

​​

然后。

的foreach:

foreach ($numbers as $number) 
     { 
      //query like SET x=1 where id=$number 
     } 

为:

for($i = 0; $i < count($numbers); $i++) 
    { 
     //query like SET x=1 where id=$numbers[$i] 
    } 

如果x永远是1,你可以在使用,

$query = "UPDATE table SET x = 1 WHERE id IN(" . implode(',',$numbers) . ")" 

如果$numbers变量是字符串,x会为每个ID为1,忘记我写的所有内容,然后试试这个:)

$query = "UPDATE table SET x = 1 WHERE id IN({$numbers})" 
+0

就这么简单? :○ – user1022585

1
 
foreach($numbers as $number) { 
    $sql = "UPDATE some_table SET X = 1 WHERE id = ".$number 
} 

希望它可以帮助

0
$query = "UPDATE members SET x=1 WHERE id IN(".implode(",", $numbers).")"; 

它的一个字符串,所以,是的爆炸我猜。

$query = "UPDATE members SET x=1 WHERE id IN({$numbers})"; 
0
<?php 

$numbers = array(25, 658, 968, 548, 698, 365); 

foreach($numbers as $number){ 
echo "UPDATE members SET x=1 where id=$number\n"; 
} 

?> 

OUTPUT

UPDATE members SET x=1 where id=25 
UPDATE members SET x=1 where id=658 
UPDATE members SET x=1 where id=968 
UPDATE members SET x=1 where id=548 
UPDATE members SET x=1 where id=698 
UPDATE members SET x=1 where id=365