【问题标题】:Replace characters from string with database value用数据库值替换字符串中的字符
【发布时间】:2018-05-14 13:26:45
【问题描述】:

我有字符串消息$message = 'Dear $firstname$ $lastname$, your point of city is $city$'

我想从 Mysql 数据表中获取 $firstname$, $lastname$$city$ 的值并替换为消息。

我从数据库中选择了多个用户数据并将新消息存储到数组中。

$query = $ab->pquery("select firstname, lastname, city from tblaccount where country = $country";

$numOfrows = $db->num_rows($query);
for($i=0; $i<$numOfrows; $i++) {
    $toNumber = array();
    $toNumber['firstname'] = $db->query_result($result, $i, 'firstname');
    $toNumber['lastname'] = $db->query_result($result, $i, 'lastname');
    $toNumbers[] = $toNumber;
}

我希望为所有用户动态替换名字、姓氏和城市,并将消息存储到数组中。

如何识别$firstname$ 替换为firstname 归档的数据库结果?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    另一种方法是让 MySQL 执行连接工作,这将减少 PHP 指令。

    $messageSQL = "CONCAT('Dear ', firstname, ' ', lastname, ', your point of city is ', city)";
    
    $query = $ab->pquery("select $messageSQL AS themessage from tblaccount where country = $country";
    
    $numOfrows = $db->num_rows($query);
    for($i=0; $i<$numOfrows; $i++) {
        $message =  $db->query_result($result, $i, 'themessage');
        $toNumbers[] = $message;
    }
    

    【讨论】:

      【解决方案2】:
                  $query = $ab->pquery("select firstname, lastname, city from tblaccount where country = $country";
      
          $numOfrows = $db->num_rows($query);
          for($i=0; $i<$numOfrows; $i++) {
              $toNumber = array();
      $message = 'Dear $firstname$ $lastname$, your point of city is $city$';
      
              $toNumber['firstname'] = $db->query_result($result, $i, 'firstname');
      $message=str_replace('$firstname$',$toNumber['firstname'],$message); ///something like that
              $toNumber['lastname'] = $db->query_result($result, $i, 'lastname');
        $toNumber['message'] = $message;
      
              $toNumbers[] = $toNumber;
          }
      

      【讨论】:

      • Pawel 您应该在所有答案中描述您的代码的作用。我已经看到您在答案中所包含的不仅仅是代码,这在其他页面上可能没问题,但在所有答案上都应该有描述。正确的格式也是一件好事。
      【解决方案3】:

      只需创建一个名为 $messages 的新数组并将它们中的每一个都存储在此数组中。

      $query = $ab->pquery("select firstname, lastname, city from tblaccount where country = $country";
      
      $messages = array();
      
      $numOfrows = $db->num_rows($query);
      for($i=0; $i<$numOfrows; $i++) {
          $firstname  = $db->query_result($result, $i, 'firstname');
          $lastname   = $db->query_result($result, $i, 'lastname');
          $city       = $db->query_result($result, $i, 'city');
          $messages[] = "Dear $firstname $lastname, your point of city is $city";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-30
        • 2013-05-03
        • 2015-09-25
        • 2020-02-15
        • 2015-01-29
        • 2018-01-31
        • 1970-01-01
        相关资源
        最近更新 更多