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 检查成员表中的“全名”字段是否为 0(这是默认值)
  2. 如果是,则将 fname 和 lname 字段连接成一个字符串,中间有一个空格
  3. 获取这个连接的字符串并将其放回“全名”字段中的成员表中
4

5 回答 5

6

在不知道您的问题的情况下,您可以在一个查询中完成所有这些操作:

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

您只需一个查询即可完成。

$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

您实际上可以在一个查询中执行此操作,(无需调用 select 一次

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