【问题标题】:Retrieve data from two tables php从两个表php中检索数据
【发布时间】:2015-03-02 12:02:30
【问题描述】:

我有两个表如下: activity_base(与 activity_type 一起保存基本活动信息) activity_email(保存电子邮件活动的具体细节)

所有表都有引用 activity_base 的 activity_id。

一个例子:我正在尝试输出一个电子邮件活动的数据,该活动根据活动类型从其他表中获取数据。

查询将引用 activity_base 以获取有关活动的基本信息,然后如果 activity_type 是电子邮件,我需要它通过运行函数 email_activity_details 从 activity_email 表中获取更多数据。

问题是:我无法让 $activity_details 显示为未定义的变量。 这是查询: 电子邮件活动信息:

function email_activity_details($activity_id){
          global $connection;
          $email_activity = "SELECT * FROM activity_email WHERE activity_id ='$activity_id'"
                    or die("Error: ".mysqli_error($connection));
          $query_email_activity = mysqli_query($connection, $email_activity);
         return $query_email_activity;
        }

活动详情:调用 email_activity_details():

function view_full_activity($activity_field){
            global $connection;

        $contact_id = $_REQUEST['contact_id'];
        $activity_id = $_REQUEST['activity_id'];
        $get = "SELECT * FROM activity_base WHERE activity_id = '$activity_id' "
                                    or die("Error: ".mysqli_error($connection));
        $query = mysqli_query($connection, $get);
    //Get activity base information
        while ($activity = mysqli_fetch_array($query)){
            $activity_related_to_id = $activity ['activity_related_to_id'];
            $activity_id = $activity['activity_id'];
            $activity_type_id = $activity['activity_type_id'];
    }     
    //Get detailed activity information 
      //If activity is Email
    if ($activity_type_id == "1") {
        $email_details = email_activity_details('$activity_id');
        while ( $email = mysqli_fetch_assoc($email_details)) {
          $activity_details = $email['email_message'];
        }
    }

switch ($activity_field) {
    case 'activity_id':
        return $activity_id;
        break;
    case 'activity_title':
        return $activity_title;
        break;
    default:
        # code...
        break;
}

}

希望我能解释清楚。谢谢。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    改变这一行

    $email_details = email_activity_details('$activity_id');
    

    到这里

    $email_details = email_activity_details($activity_id);
    

    说明: 单引号内的美元符号按字面意思处理。

    来自 PHP 手册:

    特殊字符的变量和转义序列出现在单引号字符串中时不会被扩展

    http://php.net/manual/en/language.types.string.php#language.types.string.syntax.single

    【讨论】:

      猜你喜欢
      • 2018-10-03
      • 2023-04-04
      • 2012-12-09
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多