无法从查询结果中显示一个项目 - PHP / MySQL

时间:2011-03-14 21:29:53

标签: php mysql

所以,奇怪的问题。

以下是代码:

//connect and execute query
mysql_connect('127.0.0.1','user','password');
@mysql_select_db('db_name') or die( "Unable to select database");

$query="SELECT node_revisions.nid, node_revisions.title, content_type_training_event.field_course_url_value
    FROM node_revisions, content_type_training_event
    WHERE body LIKE '%{$term}%' AND node_revisions.nid IN (SELECT nid FROM content_type_training_event) AND content_type_training_event.nid = node_revisions.nid";

$result=mysql_query($query);

$num = mysql_numrows($result);  

if ($num > 0)
{
while ($col = mysql_fetch_assoc($result)) 
{       

$nid=trim($col["nid"]);
$title=trim($col["title"]);
$url=trim($col["field_course_url_value"]);

}
}

//好奇怪的部分......

echo($nid . $title . $url);

所以,会发生什么是$ title和$ url打印到屏幕上,但$ nid不是。当我在MySQL Admin中运行相同的查询时,我得到了nid。

有什么想法吗?这让我疯了。

2 个答案:

答案 0 :(得分:3)

可能因为多个表中存在NID。在查询中为NID添加别名,如下所示:

$query="SELECT node_revisions.nid as nid, node_revisions.title, content_type_training_event.field_course_url_value
    FROM node_revisions, content_type_training_event
    WHERE body LIKE '%{$term}%' AND node_revisions.nid IN (SELECT nid FROM content_type_training_event) AND content_type_training_event.nid = node_revisions.nid"

我当然可能是错的;请随意downvote:)

答案 1 :(得分:0)

尝试

SELECT node_revisions.nid as currentNid, node.....

然后

$nid=trim($col["currentNid"]);
$title=trim($col["title"]);
$url=trim($col["field_course_url_value"]);