2011-10-28 94 views
0

我想運行一個相當簡單的查詢,但它似乎返回絕對沒有結果;SQL查詢,聯接和在哪裏

$q = "SELECT DISTINCT c.product_sku, c.compare_at, c.product_discount_id, d.amount FROM #__{vm}_product as c 
LEFT OUTER JOIN #__vm_product_discount as d ON d.discount_id = c.product_discount_id WHERE"; 
$q .= "c.vendor_id='".$_SESSION['ps_vendor_id']."' "; 
$q .= "AND #__{vm}_product.product_publish='Y' "; 
$q .= "AND #__{vm}_product.isfront='1' "; 
$q .= "AND c.isfront='1' "; 

有上述後其他查詢,但即使當我註釋掉一切,只使用一個WHERE子句,什麼都不會返回。當我刪除它,它的作品。下面的所有代碼都可以工作,直到我添加了JOIN。

我是新來的使用連接,我猜他們的東西使得WHERE不工作,但也許我只是沿途弄亂了代碼,所以也許更好的訓練有素的眼睛可以在這裏找到問題?

在此先感謝!

+0

這只是醜陋的格式。運行它打印出q變量內部的內容。最好包括\ n返回行 – MarianP

回答

1

在上面的代碼中,WHERE和c.vendor_id之間沒有任何空格。所以你的SQL看起來像:blah blah WHEREc.vendor_id = blah blah。所以首先要嘗試的是在第一行的WHERE之後添加一個空格。

如果還有更多這個問題比缺少的空間,請你可以發佈一個正在運行的$ q中的實際SQL示例,而不是用於生成它的代碼?你的代碼不包含自由灑灑的諸如addslashes()或mysql_real_escape_string()之類的保護措施,所以有可能存在一些令人討厭的東西。

+0

非常感謝你,這確實是這個愚蠢的疏忽,非常感謝你指出! – Sherif