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

4

1 に答える 1

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からのすべてとcからの category_id を教えてください。

FROM: テーブル crd_jshopping_products ( p と呼ばれる) および crd_jshopping_products_to_categories ( c と呼ばれる) の行からこれを行います。行はp .product_idのカウントで一致し、c .product_idと同じです。

WHERE: p .name_en-GB REGEXP '^$param' の 行のみを返します。

于 2013-05-22T07:24:09.763 に答える