php - 使用表连接访问基于 MySQL 的网站时遇到困难

标签 php mysql

我有一个数据库,其中有两个表,它们代表相同的数据,但来自不同的来源(因此结构相同,但各个数据点可能不同)

让我的代码变得复杂的是,在两个表中,它们具有相同的列标题 (M_A)

这是我的index.php页面上的代码:

<?php
include ("includes.php");
$nvPosts = GetNVPosts();
include ("displaynvtable.php");
?>

这是我的includes.php的相关部分:

function GetNVPosts ($inID=null)
{
$query = mysql_query("SELECT table1.id, table1.county, table1.M_A, table2.M_A FROM table1 JOIN table2 ON table1.county = table2.county");
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
    $myPost = new NVPost($row["id"], $row['county'], $row['M_A'], $row['M_A']);
            array_push($postArray, $myPost);
}
return $postArray;
echo $postArray;
}

这是我的构造函数和类定义:

class NVPost
{
public $id;
public $county;
public $M_A1;
public $M_A2;

function __construct($inId=null, $inCounty=null, $inM_A1=null, $inM_A2=null)
{
if (!empty($inId))
{
    $this->id = $inId;
}
if (!empty($inCounty))
{
    $this->county = $inCounty;
}
if (!empty($inM_A1))
{
    $this->m_a1 = $inM_A1;
}
if (!empty($inM_A2))
{
    $this->m_a2 = $inM_A2;
}
}
}

这是我的displaytable.php:

foreach ($nvPosts as $post)
{
    echo"<TR>";
        echo"<TD>" . $post->county . "</TD>";
        echo"<TD>" . $post->m_a1 . "</TD>";
        echo"<TD>" . $post->m_a2 . "</TD>";
    echo"</TR><br>";
}

问题是它抛出了这个错误:

Notice: Undefined property: NVPost::$m_a1 in C:\...\votenight\displaynvtable.php on line 34

当我将其设置为 m_a1 和 m_a2 时,但当我执行 M_A1 和 M_A2 时,这些消失,但随后它只显示县信息。 我在类似的问题上遵循了相同的风格,但我只有 MySQL 表,但它没有给我任何错误。

有人可以帮我吗?

编辑:

function GetNVPosts ($inID=null)
{
$query = mysql_query("SELECT table1.id, table1.county, table1.M_A as 'M_A1', table2.M_A as 'M_A2' FROM table1 JOIN table2 ON table1.county = table2.county");
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
    $myPost = new NVPost($row["id"], $row['county'], $row['M_A1'], $row['M_A2']);
            array_push($postArray, $myPost);
}
return $postArray;
echo $postArray;
}

最佳答案

在 SQL 上不能有两个同名的列,请使用别名

... table1.M_A as M_A1, table2.M_A as M_A2 ...

那么结果中列的最终名称就是别名,因此您有 $row['M_A1']$row['M_A2']

关于php - 使用表连接访问基于 MySQL 的网站时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404722/

相关文章:

mysql - 在选择查询的过程中读取 XML

php - 自动抓取ID功能?

php - 使用 twitteroauth 发布可点击的推文链接?

php - 如何使用 BASH 从 MySQL 数据库中逐行提取数据

php - 在 PHPass 中使用现有的 MD5 散列是否存在任何安全隐患?

php - Symfony 2.8 中上传的文件目录

php - Steam 中的文件处理

mysql - 如何停止订购 CONCAT REGEXP MySQL

MySQL安装.. "unable to determine the products that correspond with that setup type"这个怎么解决..?

php - 如何将SQL中的第一列更改为文本格式到XLS?