2012-03-22 123 views
0

雖然我這段代碼運行它顯示我以下錯誤: - 在where子句是曖昧我收到以下錯誤,同時運行我的代碼

列「virtuemart_product_id」 誰能告訴我如何解決它。 謝謝。

<?php 
    mysql_connect('localhost','root',''); 
    mysql_select_db('joom'); 
    $get=$_GET['virtuemart_product_id']; 
    $get1=$_GET['virtuemart_category_id']; 
    $sql="SELECT 
      btn9c_virtuemart_products_en_gb.virtuemart_product_id, 
      btn9c_virtuemart_products_en_gb.product_s_desc, 
      btn9c_virtuemart_products_en_gb.product_desc, 
      btn9c_virtuemart_products_en_gb.product_name, 
      btn9c_virtuemart_product_prices.product_price 
      FROM btn9c_virtuemart_products_en_gb 
      JOIN btn9c_virtuemart_product_prices ON 
      btn9c_virtuemart_products_en_gb.virtuemart_product_id=btn9c_virtuemart_product_prices.virtuemart_product_id 
      WHERE virtuemart_product_id='$get' "; 
    if($result=mysql_query($sql)) 
    { 
     while($row=mysql_fetch_assoc($result)) 
     { 
      echo $row['product_price']; 
     } 
    } 
    else 
    { 
     echo (mysql_error()); 
    }  
?> 
+0

請SHWO我們的代碼/查詢,發生錯誤,否則我們可能只是猜測什麼是錯... – ChrFin 2012-03-22 08:45:03

+3

可能是因爲您正在使用連接並在多個表中存在具有相同名稱的列。 – 2012-03-22 08:45:14

+0

如果你可以顯示查詢,那麼你可以建議你一些解決方案。 – 2012-03-22 08:45:41

回答

2

放表格的名稱(或別名),在where條款列名這是您要加入的表之間常見。

如下嘗試:

$sql="SELECT 
     btn9c_virtuemart_products_en_gb.virtuemart_product_id, 
     btn9c_virtuemart_products_en_gb.product_s_desc, 
     btn9c_virtuemart_products_en_gb.product_desc, 
     btn9c_virtuemart_products_en_gb.product_name, 
     btn9c_virtuemart_product_prices.product_price 
     FROM btn9c_virtuemart_products_en_gb 
     JOIN btn9c_virtuemart_product_prices ON 
     btn9c_virtuemart_products_en_gb.virtuemart_product_id=btn9c_virtuemart_product_prices.virtuemart_product_id 
     WHERE btn9c_virtuemart_products_en_gb.virtuemart_product_id='$get' "; 
+0

感謝您的快速反應,我將使用別名從現在 – user1264429 2012-03-22 08:52:59

+1

@ user1264429:你應該接受答案,解決您的問題。點擊這裏瞭解如何http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – 2012-03-22 09:01:13

1

在你where條款財產virtuemart_product_id不是由表名明確標識。只要在那裏使用表格前綴。

SELECT 
    prod.virtuemart_product_id, 
    prod.product_s_desc, 
    prod.product_desc, 
    prod.product_name, 
    prices.product_price 
FROM btn9c_virtuemart_products_en_gb prod 
JOIN btn9c_virtuemart_product_prices prices ON 
    prod.virtuemart_product_id=prices.virtuemart_product_id 
WHERE prod.virtuemart_product_id='$get' 

btw使用別名爲表名稱。節省了大量的打字工作,使得文字更具可讀性。

1

只需將表名添加到查詢的WHERE部分:

..."WHERE table_you_need.virtuemart_product_id='$get' "; 
相關問題