2012-08-12 66 views
-1

我在更新部分腳本時遇到了一些問題。使用for/foreach循環更新

我有一個網頁,用戶可以標記每個用戶旁邊的複選框,他們想要「回收」與另一種用途。

我存儲在一個這樣的數組的用戶ID:

$refsid= explode(',',$_POST['referralIds']); 
$users->_recycleMulti($membershipData['recycle_price'], $userdata['username'], $refsid); 

然後,在我的_recycleMulti功能,我希望做實際的回收利用。無論是已經選擇只有一個用戶,或者10。因此,我使用的是for loop.

但它仍然只是剛剛更新一個用戶。

我_recycleMulti功能如下:

function _recycleMulti($value, $username, $referrals_array){ 


     for($i=0; $i < count($referrals_array); $i++){ 

      mysql_query("do the update here"); 

     } 
     return "success!"; 

    } 

​​將返回:

string(3) "4,5" 

這是正確的,因爲我已經檢查兩個複選框。 ID匹配數據庫中的ID。

var_dump($refsid); is returning: 

array(2) { [0]=> string(1) "4" [1]=> string(1) "5" } 

我在做什麼錯?

+0

請問您可以爲referralIds添加HTML嗎?您可能想要添加'var_dump($ refsid)'和'var_dump($ _ POST ['referralIds'])',以確保它們包含您認爲它們包含的內容。 – andrewsi 2012-08-12 15:10:20

+0

我用var_dump – oliverbj 2012-08-12 15:14:16

+0

的信息更新了我的問題請不要使用'mysql_ *'函數來創建新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。請參閱[**紅框**](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這是一本很好的PDO教程](http://goo.gl/vFWnC)。 – PeeHaa 2012-08-12 15:15:34

回答

0

你可以改變的for循環到一個foreach雖然它不應該在執行中的差異

foreach ($referrals_array as $refid) { 
    echo "Updating referral ".$refid.".<br>\n"; 
    // execute SQL code here using $refid value 
} 

,可以幫助你看到你正在執行什麼,或者如果不工作做得不夠好,回聲你的SQL語句,並確保它正在做你認爲的事情。

+0

這實際上工作。它更新了每個ID。不知道爲什麼'for'循環沒有。 謝謝! – oliverbj 2012-08-12 15:56:51