【发布时间】:2019-11-08 10:05:29
【问题描述】:
我正在制作一个 wordpres 网站。我尝试从 mysql DB 中获取一个值。实际上,我设法获得了很多价值。但是这个太复杂了。 例如; DB中有一个值。它的 meta_key => 'th_room_price' 和 meta_value => '499' 然后我用 meta_key 创建一个简码并获取 meta_value。
但现在还有另一个非常复杂的值。它的 meta_key => mphb_season_prices 和 meta_value =>(它在下面) 这里有 12 个单独的价格,我不知道如何分别获得每个价格。有人可以帮忙吗?
这些是数据库中别墅的值;
('meta_id' => '3307','post_id' => '426','meta_key' => 'mphb_season_prices','meta_value' => 'a:12:{i:0;a:2:{s:6:"season";s:3:"252";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:422;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:1;a:2:{s:6:"season";s:3:"253";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:422;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:2;a:2:{s:6:"season";s:3:"254";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:422;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:3;a:2:{s:6:"season";s:3:"255";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:493;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:4;a:2:{s:6:"season";s:3:"256";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:493;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:5;a:2:{s:6:"season";s:3:"257";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:708;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:6;a:2:{s:6:"season";s:3:"258";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:893;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:7;a:2:{s:6:"season";s:3:"259";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:893;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:8;a:2:{s:6:"season";s:3:"260";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:708;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:9;a:2:{s:6:"season";s:3:"261";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:565;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:10;a:2:{s:6:"season";s:3:"262";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:465;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}i:11;a:2:{s:6:"season";s:3:"263";s:5:"price";a:4:{s:7:"periods";a:1:{i:0;i:1;}s:6:"prices";a:1:{i:0;d:422;}s:17:"enable_variations";b:0;s:10:"variations";a:0:{}}}}')
顺便说一句,这是我的简码之一;
function fiyat_shortcode_function() {
$cekilen_deger = get_post_meta( get_the_ID(), 'th_room_price', true );
$var = $cekilen_deger;
return $var;
}
add_shortcode( 'villa_fiyat', 'fiyat_shortcode_function' );
EDIT-最终代码; (还是不行)
function fiyatlar_shortcode_function() {
$var = get_post_meta( get_the_ID(), 'mphb_season_prices', true);
$var = unserialize($var);
$season = 252; // 252 january, 253 february, 254 march...
$foo = array_column($var, 'price', 'season');
}
print_r($foo[$season]['prices'][0]);
add_shortcode( 'fiyat_tablosu', 'fiyatlar_shortcode_function' );
--编辑4
function fiyatlar_shortcode_function() {
$var = get_post_meta( get_the_ID(), 'mphb_season_prices', true);
$var = unserialize($var);
return $var;
}
add_shortcode( 'fiyat_tablosu', 'fiyatlar_shortcode_function' );
--编辑5
function fiyatlar_shortcode_function() {
$va_form = get_post_meta( get_the_ID(), 'mphb_season_prices');
var_dump($va_form);
}
add_shortcode( 'fiyat_tablosu', 'fiyatlar_shortcode_function' );
并编辑 5 输出:array(0){}
【问题讨论】:
-
源数据是 PHP 序列化数据,所以我还添加了 PHP 标记。MySQL 无法处理或解析,因此您需要将所有表数据/记录数据流式传输到 PHP 进行处理和搜索in.. 所以最好考虑使用更好的方法,如normalisation 或使用 MySQL 可以选择/解析/搜索的 JSON..
-
抱歉,这是您的第一条评论?我正在编辑问题。请再次检查问题。和 ty 新标签
-
“对不起,这是您的第一条评论?我正在编辑问题。请再次检查问题。”我的评论建议在问题编辑后仍然有效..
-
什么季节
$foo = array_column($var, 'price', 'season')然后$foo[$season]['prices'][0]sandbox -
@ArtisticPhoenix OMG!你真是太棒了。从心底里感谢你。但我有一个小问题。我必须让每个房间都特别!怎么做?请从上面检查我的简码的最终外观。(编辑 3)我只想再问一个问题。我有 12 个季节,我将创建一个价格表。那么我应该为每个季节分别制作短代码吗?或者我可以制作这个单一的 shorcode 吗?
标签: php mysql database wordpress phpmyadmin