【问题标题】:PHP concatenate names and update SQL fieldPHP 连接名称并更新 SQL 字段
【发布时间】:2013-03-20 03:13:08
【问题描述】:

首先,这是我的代码

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

【问题讨论】:

  • 问题是什么?
  • 您的最后一个查询 ($qry2) 会将所有记录设置为相同的 fullname

标签: php mysql concatenation


【解决方案1】:

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

UPDATE Members SET fullname=CONCAT(fname,' ',lname) 
      WHERE fullname=0 AND member_id = '".$_SESSION['SESS_MEMBER_ID']."'

【讨论】:

  • 这将更新每个人的 fullname 字段,而不仅仅是当前用户。
  • 同意,我更新了答案。但是,OP 没有说明问题,也更新了所有记录 ;-)。
  • "检查 Members 表中的 'fullname' 字段是否为 0(这是默认值)基于 member_id" ;)
  • 完美运行!而且比我最初试图做的混乱要简单得多。非常感谢大家:-)
  • @Chris,阅读 MySQL 教程。您可以在数据库中做很多事情。祝你好运。
【解决方案2】:

您可以通过单个查询轻松实现此目的:

UPDATE `Members` 
SET `fullname` = CONCAT(`fname`, ' ', `lname`) 
WHERE `member_id` = '".$_SESSION['SESS_MEMBER_ID']."' 
  AND `fullname` = 0 
LIMIT 1;

【讨论】:

    【解决方案3】:

    只需一个查询即可完成。

    $query = "UPDATE Members SET fullname = CONCAT( fname, ' ', lname )
              WHERE member_id = {$_SESSION['SESS_MEMBER_ID']}
              AND fullname = 0" 
    

    【讨论】:

      【解决方案4】:

      试试:

      $qry1 = "UPDATE Members SET fullname = CONCAT( fname, ' ', lname ) WHERE member_id = '".$_SESSION['SESS_MEMBER_ID']."'";
      

      【讨论】:

      • 那不检查fullname == 0。
      • 感谢您的通知,但我认为用户在运行此查询之前已签入程序,例如 if($check['fullname'] == 0) { --- }
      【解决方案5】:

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

      UPDATE  Members a
      SET     a.fullName = IF(fullname = 0, CONCAT(fname, ' ',lname), fullName)
      WHERE   member_ID = 'memberIDHERE'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        相关资源
        最近更新 更多