2011-10-28 7 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' "; 

上記以外のクエリもありますが、すべてをコメントアウトして1つのWHERE句のみを使用しても、何も返されません。私はそれを削除すると、それは動作します。 JOINを追加するまで、以下のコードはすべて動作しました。

私はジョインを初めて使っていましたが、私はそれらについて何かがうまくいかないと思っていますが、おそらく私はちょうど道に沿ってコードを台無しにしました。

ありがとうございます!

+0

これはちょうど醜いフォーマットです。 q変数の中に何があるかを表示してください。行を返すには\ nが好きです。 – MarianP

答えて

1

上記のコードでは、WHEREとc.vendor_idの間にスペースはありません。だからあなたのSQLは次のようになります:blah blah WHEREc.vendor_id = blah blah。だから最初の試みは、最初の行にWHEREの後ろにスペースを追加することです。

空白よりも多くの問題がある場合は、実際のSQLの例を、実行に使用しているコードではなく、実行中の$ qに投稿してください。あなたのコードにはaddslashes()やmysql_real_escape_string()などの保護手段が自由に散らばっていないので、そこに何か不快なものがある可能性があります。

+0

ありがとう、それは本当にこの愚かな監視でした、ありがとう、それを指摘するための多くの! – Sherif