2010-05-21 62 views
2

我使用此代碼連接到數據庫並獲取結果。這工作完美,直到我試圖在圖像表的另一個查詢工作,以獲得相關的圖像。我對OO編程不是很有經驗。所以希望有人能看到哪裏出了問題並幫助我。在查詢其他產品後查詢相關圖像

<?php 
    global $__CMS_CONN__; 

    $sql = "SELECT * FROM ecom_products"; 
    $stmt = $__CMS_CONN__->prepare($sql); 
    $stmt->execute(array($id)); 

    while ($row = $stmt->fetchObject()) { 

     $imagesql = "SELECT * FROM ecom_product_images where id = $row->id && where primaryImage = '1'"; 
     $imagestmt = $__CMS_CONN__->prepare($sql); 
     $imagestmt->execute(array($id)); 
     $imageName = $imagestmt->fetchObject(); 

     echo '<a href="'.URL_PUBLIC.$row->id.'">'.$row->productNm.'</a>'.$imageName; 

    } 
?> 

回答

0

修改您的SQL查詢:

$imagesql = 'SELECT * FROM ecom_product_images where id = ' . $row->id . ' AND primaryImage = "1"'; 

你以前$id變量聲明?

你的代碼有錯誤嗎?

如果您primaryImage列然後int類型跳過撇號查詢

primaryImage = 1 

如果enum那麼它是確定。

+0

爲什麼downvote?這將糾正OP代碼中的錯誤。 +1 – 2010-05-21 11:06:21

+0

這很酷......謝謝你們,我現在就試試它們,直接回到你身邊。感謝您的快速響應。 – Andy 2010-05-21 11:09:03

+0

不幸的是這些工作都沒有。 – Andy 2010-05-21 12:07:34

0

你不需要面向對象編程,而是SQL。

SELECT p.*, imageName 
FROM ecom_products p, ecom_product_images i 
WHERE p.id = i.id AND primaryImage = 1; 
+0

'LEFT JOIN'在這裏不是更好嗎? – hsz 2010-05-21 11:08:52