Php 从mysql表中获取值

Php 从mysql表中获取值,php,sql,Php,Sql,我在使用sql方面是新手,但我有一个似乎无法解决的问题。我有四张表:T_项目、T_交易、T_发送者交易和T_接收者交易,如下所示: T_Item (itemID, name, category, description, description); T_Trade (tradeID, date, senderID, receiverID); T_sender_trade (tradeID, senderItemID) - both foreign keys from the previous

我在使用sql方面是新手,但我有一个似乎无法解决的问题。我有四张表:T_项目、T_交易、T_发送者交易和T_接收者交易,如下所示:

T_Item
(itemID, name, category, description, description);

T_Trade
(tradeID, date, senderID, receiverID);

T_sender_trade
(tradeID, senderItemID) - both foreign keys from the previous tables

T_receiver_trade
(tradeID, receiverItemID) - as in T_sender_trade
这意味着发送者和接收者交易两种商品。我要做的是使用php创建一个html表格,其中包含以下信息:

  • 发件人提供的项目说明
  • 来自接收者的项目描述
  • 日期(交易日期)
根据老师的要求,我正在进行课堂交易。 我在课堂上使用了以下代码:

<?php
    require_once '../utils/ligabd.php'; (uses the connection to the mysql in another class)

Class Trade
    {
            public $tradeID;
        public $date;
        public $senderID;
        public $receiverID


        public function __construct($date = null, $senderID= null, $receiverID=null) {

            $this->date= $date;
                $this->senderID= $senderID;
            $this->receiverID= $receiverID;     
                                }

    public static function load($tradeID) {
    $result = mysql_query("SELECT * FROM T_Trade");
    if (!$result) {
        die('Troca não existente ' . mysql_error());
    }
    $row = mysql_fetch_assoc($result);
    if ($row) {
      $t = new Trade();
      $t->tradeID = $row["tradeID"];
      $t->date = $row["date"];
      $t->senderID=$row["senderID"];
      $t->receiverID=$row["receiverID"];
      return $t;
    } else {
      return NULL;
    }
    }

public static function returnsSenderItem($tradeID) {
    $result = mysql_query("SELECT * FROM T_Item, T_sender_trade where T_sender_trade.tradeID= $tradeID AND T_sender_trade.senderItemID =T_Item.ItemID");

if(!$result) {
die ('Trade not found ' .mysql_error());
}
$rows=Array();
    while ($row = mysql_fetch_assoc($result)) {
    $rows[]=$row;
            }
            return $rows;
            } 
我应该用这样的代码来制作我的桌子。问题是程序无法从t_项中找到数据。。我应该在类/php中做什么更改?
谢谢。

为了获得发送方和接收方项目的描述,您需要链接到T_项目表两次(每个项目一次)-这需要使用表别名,如下所示:

select t.tradeID,
       t.`date`,
       t.senderID,
       s.SenderItemID,
       si.description as SenderDescription,
       t.receiverID,
       r.ReceiverItemID,
       ri.description as ReceiverDescription
from T_Trade as t
join T_sender_trade as s on t.tradeID = s.tradeID
join T_Item as si on s.senderItemID = si.itemID
join T_receiver_trade as r on t.tradeID = r.tradeID
join T_Item as ri on s.receiverItemID = ri.itemID
where t.tradeID = $tradeID
select t.tradeID,
       t.`date`,
       t.senderID,
       s.SenderItemID,
       si.description as SenderDescription,
       t.receiverID,
       r.ReceiverItemID,
       ri.description as ReceiverDescription
from T_Trade as t
join T_sender_trade as s on t.tradeID = s.tradeID
join T_Item as si on s.senderItemID = si.itemID
join T_receiver_trade as r on t.tradeID = r.tradeID
join T_Item as ri on s.receiverItemID = ri.itemID
where t.tradeID = $tradeID