2013-05-22 31 views
1

我目前有一個使用動態輸入在我的表單(term)中輸出變量的數組的查詢,這會創建一個動態搜索並使用自動完成來填充所有產品的詳細信息。如何使用動態調用在另一個表中獲取另一個值

$return_arr = array(); 
$param = $_GET["term"]; 
    $fetch = mysql_query("SELECT * FROM crd_jshopping_products WHERE `name_en-GB` REGEXP '^$param'"); 
    while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) { 
    //$row_array['category_id'] = $row ['category_id']; 

$row_array['product_id'] = $row['product_id']; 
    $row_array['product_names'] = $row['name_en-GB']; 
    $row_array['jshop_code_prod'] = $row['product_ean']; 
    $row_array['_ext_price_html'] = number_format($row['product_price'],2); 
if (!empty($row['product_thumb_image']) AND isset($row['product_thumb_image'])){ 
$row_array['image'] = $row['product_thumb_image'];  
}else { 
    $row_array['image'] = 'noimage.gif';  
} 
    array_push($return_arr, $row_array); 
} 
mysql_close($conn); 
echo json_encode($return_arr); 

不幸的是我還需要獲得category_id這是不是在同一個table,我試圖修改我的query因爲如此,但無濟於事:

$fetch = mysql_query("SELECT * FROM crd_jshopping_products WHERE `name_en-GB` REGEXP '^$param' AND `crd_jshopping_products_to_categories` = `product_id` "); 

我錯過了哪一步這裏 ? product_id's匹配tables

回答

1

嘗試此查詢,而不是嘗試去理解什麼,我已經寫在上面:

$fetch = mysql_query(" 
    SELECT 
     p.*, 
     c.category_id 
    FROM 
     crd_jshopping_products as p 
     INNER JOIN crd_jshopping_products_to_categories as c 
      ON p.product_id = c.product_id 
    WHERE 
     `p.name_en-GB` REGEXP '^$param' 
"); 

這意味着:

SELECT: 給我的一切,從p和CATEGORY_ID從c

FROM: 從表crd_jshopping_products行(稱爲p)和crd_jshopping_products_to_categories(稱爲C),其中的行上p的計數 .product_id爲符合執行此與c .product_id相同。

WHERE: 只有回到這裏p .name_en-GB REGEXP '^ $ PARAM' 的行。

+0

謝謝nl-x - 對於查詢和深入解釋,我都需要一段時間!我會立即測試它! – user2265402

+0

因爲連字符,我不得不在name_en-GB周圍添加「'」到p.name_en-GB,只爲其他可能嘗試此操作的人或類似人員。 謝謝你nl-x它是現貨,現在我對未來的查詢有很大的參考價值! – user2265402

相關問題