需要从mysql数据库中获取产品数据


Need to get productdata out of mysql database

我有个问题。我将尝试描述我的情况:

我安装了一个wordpress,我在其中安装了codeigniter。这一切都很好,我还可以访问数据库。现在我为wordpress安装了一个插件,名为:Wooccommerce。使用此插件,您可以将产品和产品数据存储在数据库中。现在,我需要在codeigniter应用程序中访问我的wooccommerce产品的数据。

Woocommerce的产品是这样储存的:

所有产品都进入一个名为:wp_posts的表中在该表中,定义了一列,名为:post_type当post_type设置为product[duh!]时,Wooccommerce将帖子标识为产品。

现在有另一个名为wp_postmeta的表。在该表中,所有产品数据都存储在4列中:1.meta_id[元行的标识符]2.post_id[向wp_posts表标识自身]3.meta_key[里面会有几个键,比如:sale_price、stock、additional_price等。]4.meta_value[每个键都有一个值。]

在表wp_postmeta中,如果产品的meta_key='_rentable'和meta_value='yes',我需要将所有的meta_key及其值进行排序。因此,如果这是真的,我需要获得post_id与可出租产品相同的所有其他meta_key和值。我希望我没有把任何人弄糊涂。。。现在我得到了这个查询:

    $sql = "SELECT p.id, p.post_title, p.guid, p.post_type, m.meta_key, m.meta_value
            FROM wp_posts p
            INNER JOIN wp_postmeta m
            WHERE p.id=m.post_id
            AND m.meta_key='_rentable' AND m.meta_value='yes'
            ";

这只返回meta_key:_rentable和值:yes。。但我也需要得到产品的价格。

听起来您正试图从同一表中的不同行获取多条数据,这意味着您需要执行多个联接。这能满足你的需求吗?

$sql = "SELECT p.id, p.post_title, p.guid, p.post_type, m.meta_key, m.meta_value, meta_sp.meta_value as sale_price, meta_ap.meta_value as additional_price
        FROM wp_posts p
        INNER JOIN wp_postmeta m
        INNER JOIN wp_postmeta meta_sp ON p.id=meta_sp.post_id 
            AND meta_sp.meta_key='sale_price'
        INNER JOIN wp_postmeta meta_ap ON p.id=meta_ap.post_id 
            AND meta_ap.meta_key='additional_price'
        WHERE p.id=m.post_id
        AND m.meta_key='_rentable' AND m.meta_value='yes'
        ";