PHP/MySQL:如何在多个表中调用MySQL结果?
问题描述:
如果我有这样的SELECT语句:PHP/MySQL:如何在多个表中调用MySQL结果?
SELECT T1.TEXT, T2.FIELD FROM TABLE1 T1, TABLE2 T2 WHERE T1.ID = T2.ID
然后,我用的mysql_query使用它与mysql_fetch_object获取它。
我怎样才能访问现场? $ fetched-> T1.TEXT不工作...
求助THX
UPDATE 2013:这个问题是很老,但正确的,最简单的方式就是给每一个领域的别名select语句,所以它们是唯一的。示例:
SELECT T1.TEXT AS MYTEXT, T2.FIELD AS MYFIELD FROM TABLE1 T1, TABLE2 T2 WHERE T1.ID = T2.ID
PHP:
mysql_connect('host','user','pass');
mysql_select_db('mydb');
$resource = mysql_query(/* the query again */);
$firstrow = mysql_fetch_object($resource);
$text = $firstrow->MYTEXT;
$field = $firstrow->MYFIELD;
答
看看这个
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select user_id,fullname from mytable");
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
mysql_free_result($result);
答
你可以看到什么领域是你的目的是通过这样做:
var_dump($fetched);
你可能会看到现场$ fetched->文本。
(假设你使用PHP)
答
试试这个 - >
$fetched->{T1.TEXT}
尝试$ fetched-> TEXT – cristian 2011-01-09 21:22:54
我认为它不会工作,因为如果我选择T1.TEXT和T2.TEXT,这将不起作用。 – 2011-01-09 21:24:01
为什么不给你的字段添加一个别名,例如`SELECT T1.TEXT as t1_text,T2.FIELD as t2_field FROM TABLE1 T1,TABLE2 T2 WHERE T1.ID = T2.ID`,然后尝试$ fetched-> t1_text或$ fetched - > t2_field – cristian 2011-01-09 21:28:15