2011-03-14 62 views
0

因此,奇怪的問題。無法顯示查詢結果中的一項 - 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"]); 

} 
} 

// OK怪異的一部分...

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

那麼,什麼情況是$ title和$ URL打印到屏幕,但$ NID不。當我在MySQL Admin中運行相同的查詢時,我得到了nid。

任何想法?這讓我瘋狂。

+0

什麼的var_dump(NID $)和後續代碼var_dump($山坳[ 「NID」])的結果? – criticus

+0

嘗試'var_dump($ col)' –

回答

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 :)

+0

謝謝adarshr!就是這樣! – user659574

0

嘗試

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

然後

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