2016-11-09 6 views
0

でPHPと4つのSQLフィールドを更新、これはコード内の人物「user_id」に基づいて4つの異なる列を更新することはできますか?のuser_id

私はいくつかの例がある知っている誰かが私に私は非常に感謝される、これが行われることになるので、私はそれに応じて自分のコードを変更することができる方法の例を与えることができれば、私は、それらを理解し、トラブルを抱えています。

以下のコードは、field1を更新するために動作しますが、どのように私はそれがまたfield2field3field4をアップロードするようにカスタマイズすることができますか?

<?php 
include 'inc/db-connect2.php' ; 
$dbname = "dtarg"; 

mysql_select_db($dbname); 

$username = $_GET["username"]; 
$bianca = $_GET["bianca"]; 
$carla = $_GET["carla"]; 
$caroline = $_GET["caroline"]; 
$carrieanne = $_GET["carrieanne"]; 
$catherine = $_GET["catherine"]; 
$frazer = $_GET["frazer"]; 
$jason = $_GET["jason"]; 
$jay = $_GET["jay"]; 
$jordan = $_GET["jordan"]; 
$kim = $_GET["kim"]; 
$lindsay = $_GET["lindsay"]; 
$natasha = $_GET["natasha"]; 
$steph = $_GET["steph"]; 
$toby = $_GET["toby"]; 



$namequery = "SELECT * FROM users WHERE name='$username'"; 
$nameresult = mysql_query($namequery) or die(mysql_error()); 
while($namerow = mysql_fetch_array($nameresult)){ 
     $userid = $namerow['user_id']; 
     $shift = $namerow['shift']; 

} 
$addrecord="UPDATE users 
    SET field1 = CASE user_id 
    WHEN '18' THEN '$bianca' 
    WHEN '19' THEN '$carla' 
    WHEN '20' THEN '$caroline' 
    WHEN '7' THEN '$carrieanne' 
    WHEN '16' THEN '$catherine' 
    WHEN '21' THEN '$frazer' 
    WHEN '15' THEN '$jason' 
    WHEN '5' THEN '$jay' 
    WHEN '11' THEN '$jordan' 
    WHEN '10' THEN '$kim' 
    WHEN '25' THEN '$lindsay' 
    WHEN '6' THEN '$natasha' 
    WHEN '1' THEN '$steph' 
    WHEN '4' THEN '$toby' 


    END 
    WHERE user_id IN (18,19,20,7,16,21,15,5,11,10,25,6,1,4)"; 



    if (!mysql_query($addrecord)) 
     { 
      die('Error: ' . mysql_error()); 
     } 

    ?> 

EDIT 2 - このコードはFIELD2と同じ値に、フィールド1を更新しているようですか?

$addrecord="UPDATE users 
    SET field1 = CASE user_id 
    WHEN '18' THEN '$bianca' 
    WHEN '19' THEN '$carla' 
    END , 

    field2 = CASE user_id 
    WHEN '18' THEN '$bianca' 
    WHEN '19' THEN '$carla' 
    END 



    WHERE user_id IN (18,19,20,7,16,21,15,5,11,10,25,6,1,4)"; 



    if (!mysql_query($addrecord)) 
     { 
      die('Error: ' . mysql_error()); 
     } 

答えて

0

はい、ちょうどカンマを追加し、ロジックを再利用:

SET field1 = CASE user_id 
        WHEN '18' THEN '$bianca' 
        WHEN '19' THEN '$carla' 
        .... END , 
    field2 = CASE user_id 
        WHEN '18' THEN '$bianca' 
        WHEN '19' THEN '$carla' 
        .... END , 
    .... 
+0

'field2' –

+0

'コード' $ addrecord =" UPDATEユーザー SETフィールド1 = CASEは をuser_idの前に 'SET'を削除'18' THEN '$ビアンカ' '19' THEN '$カーラ' END、 のSETフィールド2 = CASEは WHEN '18' THEN '$ビアンカ' をUSER_ID END はまだ私にエラーを与えているようだWHEN「19」THEN「$のカーラ」、私はそれが間違っているのでしょうか? – Sean

+0

ありがとう、これはエラーを削除するようだが、セットはフィールド2と同じ番号をフィールド1? – Sean

関連する問題