我有一个问题我会尝试描述我的情况:
我安装了一个wordpress安装,我安装了codeigniter.这一切都很好,我也可以访问数据库.现在我安装了一个名为“Woocommerce”的wordpress插件.使用此插件,您可以将产品和productdata存储在数据库中.现在,我需要在代码标识符应用程序中访问我的woocommerce产品的数据.
Woocommerce存储其产品如下:
所有产品都进入一个名为:wp_posts的表格
在这个表中有一个名为:post_type的列
当post_type设置为product [duh!]时,Woocommerce将帖子标识为产品.
现在又有一个叫做wp_postMeta的表.
在这个表中,所有的productdata都存储在4列中:
Meta_id [Metarow的标识符]
post_id [将自己标识为wp_posts表]
3. Meta_key [将会有几个关键字,如:sale_price,stock,additional_price等.]
4. Meta_value [对于每个键都有一个值]
在表wp_postMeta中,如果产品有一个Meta_key =’_可租’,而Meta_value =’yes’,我需要用它们的值排列所有的Meta_keys.
所以如果这是真的,我需要获得所有其他的Meta_keys和值,其中post_id与可租用的产品相同.
我希望我没有混淆任何人…现在我得到这个查询:
$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 ..但是我也需要得到该产品的价格.
听起来你正在尝试从同一个表中的不同行获取几个数据,这意味着您需要执行多个连接.
这可以让你找到你想要的东西吗?
原文链接:https://www.f2er.com/php/139299.html这可以让你找到你想要的东西吗?
$sql = "SELECT p.id,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' ";