查询6个表无法回显主表中的信息

时间:2011-08-17 21:27:31

标签: php mysql

我试图在我的mysql数据库中查询6个单独的表,结构如下;

item
itemitemid | item | description | brand | date | time | path |

actor
actoractorid | name | actorthumb | bio |

brand
brandbrandid | brandname | description | image |

movie
moviemovieid | title | genre | year | moviethumb | synopsis|

users
userid | name | surname | email | password |

request
requestid | userid | itemid | brandid | movieid | actorid | content | requestdate |

使用以下查询我可以显示例如,在requesttid = 1的情况下,我可以看到请求中的电影,电影中的演员,他们穿着的服装项目及其品牌。

$requestid = mysql_real_escape_string($_GET['requestid']);
        $query = "select r.requestid, m.*, a.*, i.*, b.* 
        FROM request r INNER JOIN movie m ON m.movieid = r.movieid 
        INNER JOIN actor a ON a.actorid = r.actorid 
        INNER JOIN item i ON i.itemid = r.itemid 
        INNER JOIN brand b ON b.brandid = r.brandid 
        WHERE r.requestid = $requestid";

然而,当我尝试从请求表中回显“内容”和“请求日期”时。数据根本不会出现。我也无法从用户表中获取信息,例如用户通过添加以下连接来记录请求; $ query =“select r.requestid,m。,a。,i。,b。,u。* INNER JOIN用户u on u.userid = r.userid

请指教?

1 个答案:

答案 0 :(得分:1)

你不是SELECT这些字段。现在,您只是SELECTr.requestid requests u.userid = r.userid。您需要添加对要回显的每个字段的引用。

就用户加入而言,您似乎只是加入了错误的字段。您需要加入u.itemid。现在,你加入了SELECT,这是不存在的。您还需要更改SELECT ... , u.name, u.email语句以报告所需的字段(例如SELECT)。

顺便说一句,你应该尽可能避免table.* SELECT。当您向表中添加字段但在处理查询结果时不考虑该字段时,这可能会中断。您应该尝试尽可能明确,SELECT users.name, users.email只显示您要使用的字段 - 例如SELECT users.*而不是{{1}}。