Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 联合查询的问题_Php_Mysql_Arrays_Content Management System_Union - Fatal编程技术网

Php 联合查询的问题

Php 联合查询的问题,php,mysql,arrays,content-management-system,union,Php,Mysql,Arrays,Content Management System,Union,虽然我无法检索到成功的数组结果,但我正在尝试对数据库中的两个表进行简单的联合查询。应该注意的是,每个表都有不同的列,我想创建一个虚拟结果(promo作为原点[对于从'venpromo'表中提取的结果]&&vacation作为原点[对于从'vacation'表中提取的结果]),以便将结果排序到不同的数组结构中。我到处都找过,工会都使用不同的语法。提前谢谢大家 <?php require_once('includes/config.php'); $event_query =

虽然我无法检索到成功的数组结果,但我正在尝试对数据库中的两个表进行简单的联合查询。应该注意的是,每个表都有不同的列,我想创建一个虚拟结果(promo作为原点[对于从'venpromo'表中提取的结果]&&vacation作为原点[对于从'vacation'表中提取的结果]),以便将结果排序到不同的数组结构中。我到处都找过,工会都使用不同的语法。提前谢谢大家

<?php
    require_once('includes/config.php');

    $event_query = "SELECT *, promo AS origin FROM venpromo
    UNION 
    SELECT *, vacation AS origin FROM venpromo 
    ORDER BY popularity DESC";
    $event_result = mysql_query($event_query, $connection);
    while ($event = mysql_fetch_array($event_result)) {
        if ($event['origin'] == "promo") {
            $event_array[] = array(
                'id' => $event['id'],
                'title' => $event['calname'],
                'start' => $event['sdate'],
                'end' => $event['edate'],
                'color' => "red",
                'url' => "http://www.norrisportal.com/bulletinpost.php?id=" . $event['id'] . "&hashkey=akdULjsjyUpYyTzOT7"
            );
        } elseif ($event['origin'] == "vacation") {
            $event_array[] = array(
                'id' => $event['id'],
                'title' => $event['reason'],
                'start' => $event['vacstart'],
                'end' => $event['vacend'],
                'color' => "blue"
            );
        }
    }

    echo json_encode($event_array);

?>


当访问页面查看结果时,我会看到“null”。

明确地输入列名称,而不是*,并确保每个选择中的列数和数据类型与同一列匹配。

我添加了一些伪列以匹配这两个表中的数字和数据类型,并更改了列的顺序

尝试以下示例方式:

select 
id,
uid,
approval,
vacstart,
vacend,
reason,
'dummy1' col1,
'dummy2' col2,
'dummy3' col3,
curdate() col4,
'dummy4' col5,
'dummy5' col6,
'dummy6' col7,
'dummy7' col8,
promo AS origin
from vacation
union
select
id,
venid,
authid,
sdate,
edate,
authname,
tags,
title,
calname,
date,
intro,
body,
sum,
sortdate,
vacation AS origin
from venpromo;

您能给出这两个表的列及其数据类型吗?您遇到了什么错误?请在问题中添加表结构。在讨论联合查询时,此信息非常重要。此链接显示PHPMyAdmin中结构的屏幕截图。请原谅我的无知,我是新加入工会的,再次感谢你们的帮助@AjithSasidharan-我已经提交了一个到表结构的链接。谢谢我是唯一一个没有看到您在表结构中查询的列的人吗?+1,因为答案在理论上是正确的;不过,我看不出表中的
promo
vacation
列在哪里