所以,奇怪的问题。
以下是代码:
//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。
有什么想法吗?这让我疯了。
答案 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"]);