1

まず、ここに私のコードがあります

$qry="SELECT * FROM Members WHERE member_id = '".$_SESSION['SESS_MEMBER_ID']."'";
$result=mysql_query($qry);
$check = mysql_fetch_assoc($result);

if($check['fullname'] == 0) {
$qry1 = "SELECT CONCAT( fname, ' ', lname ) AS firstlast FROM Members WHERE member_id = '".$_SESSION['SESS_MEMBER_ID']."'";
$result1 = mysql_query($qry1);
$qry2 = "UPDATE Members SET fullname = '$result1'"; }

私は次のことをしようとしています:-

  1. member_id に基づいて、Members テーブルの「fullname」フィールドが 0 (デフォルト値) であるかどうかを確認します。
  2. そうである場合は、fname フィールドと lname フィールドを 1 つの文字列に連結し、その間にスペースを入れます。
  3. この連結された文字列を取り、「フルネーム」フィールドのメンバー テーブルに戻します。
4

5 に答える 5

6

問題を知らなくても、1 つのクエリですべてを実行できます。

UPDATE Members SET fullname=CONCAT(fname,' ',lname) 
      WHERE fullname=0 AND member_id = '".$_SESSION['SESS_MEMBER_ID']."'
于 2013-03-29T12:11:36.937 に答える
2

これは、単一のクエリで非常に簡単に実現できます。

UPDATE `Members` 
SET `fullname` = CONCAT(`fname`, ' ', `lname`) 
WHERE `member_id` = '".$_SESSION['SESS_MEMBER_ID']."' 
  AND `fullname` = 0 
LIMIT 1;
于 2013-03-29T12:12:00.030 に答える
1

1 つのクエリだけで実行できます。

$query = "UPDATE Members SET fullname = CONCAT( fname, ' ', lname )
          WHERE member_id = {$_SESSION['SESS_MEMBER_ID']}
          AND fullname = 0" 
于 2013-03-29T12:12:24.213 に答える
0

試す :

$qry1 = "UPDATE Members SET fullname = CONCAT( fname, ' ', lname ) WHERE member_id = '".$_SESSION['SESS_MEMBER_ID']."'";
于 2013-03-29T12:12:04.877 に答える
0

これは、実際には 1 つのクエリで実行できます ( select once を呼び出さずに) 。

UPDATE  Members a
SET     a.fullName = IF(fullname = 0, CONCAT(fname, ' ',lname), fullName)
WHERE   member_ID = 'memberIDHERE'
于 2013-03-29T12:15:10.093 に答える