2011-11-22 99 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