2015-03-02 6 views
1

У меня есть две таблицы следующим образом: activity_base (держит основную информацию деятельности наряду с activity_type) activity_email (имеет специфические подробности по электронной почте деятельности)Извлечение данных из двух таблиц PHP

Все таблицы имеют activity_id, ссылающийся activity_base.

Пример: Я пытаюсь вывести данные для активности электронной почты, которая получает данные из других таблиц в зависимости от типа активности.

Запрос будет ссылаться на activity_base, чтобы получить основную информацию об активности, а затем, если activity_type является электронной почтой, мне нужно получить больше данных из таблицы activity_email, запустив функцию email_activity_details.

Проблема в том, что я не могу получить $ activity_details для отображения, возвращается как неопределенная переменная. Вот запрос: Email активность Информация:

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; 
} 

} 

Надеется, что я могу хорошо объяснить. Спасибо.

ответ

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

+0

спасибо. работал отлично. – EDarrien

Смежные вопросы